// This file is distributed under the University of Illinois Open Source License. | |
// See LICENSE.TXT for details. | |
// RUN: cxx_compiler cxx_11 -c %s -o %t.o | |
// RUN: bindump %t.o | FileCheck prefixes %s | |
// arrays | |
// CHECK-DAG: _Z3bazRA6_i | |
void baz(int (&) [6]) {} | |
// CHECK-DAG: _Z4barcILi6EEvRAT__i | |
template <int n> void barc(int (&) [n]); | |
template <> void barc<6>(int (&) [6]) {} | |
// CHECK-DAG: _Z3razRA6_A3_i | |
void raz(int (&) [6] [3]) {} | |
// CHECK-DAG: _Z3razRA3_iRA3_S_ | |
void raz(int (&) [3], int (&) [3] [3]) {} | |
// CHECK-DAG: _Z3fooIfEvRAplstT_Li1E_i | |
template <typename T> void foo(int (&) [((sizeof (T))+1)]); | |
template <> void foo<float>(int (&) [((sizeof (float))+1)]) {} | |
// CHECK-DAG: _Z3fooIA5_iEvv | |
template <typename T> void foo(); | |
template <> void foo<int [5]>() {} | |
// CHECK-DAG: _Z3fooIA5_iEvPT_ | |
template <typename T> void foo(T*); | |
template <> void foo<int [5]>(int (*) [5]) {} | |
// CHECK-DAG: _Z3fooIA5_iEvT_PS1_ | |
template <typename T> void foo(T, T*); | |
template <> void foo<int [5]>(int [5], int (*) [5]) {} | |
// CHECK-DAG: _Z3fooIA5_iEPT_v | |
template <typename T> T* foo(); | |
template <> int (* foo<int [5]>()) [5] { return 0;} | |