xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-alias.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s
2*0a6a1f1dSLionel Sambuc 
3*0a6a1f1dSLionel Sambuc template<typename T>
4*0a6a1f1dSLionel Sambuc struct foo {
5*0a6a1f1dSLionel Sambuc };
6*0a6a1f1dSLionel Sambuc namespace x {
7*0a6a1f1dSLionel Sambuc // splitting these over multiple lines to make sure the right token is used for
8*0a6a1f1dSLionel Sambuc // the location
9*0a6a1f1dSLionel Sambuc template<typename T>
10*0a6a1f1dSLionel Sambuc using
11*0a6a1f1dSLionel Sambuc # 42
12*0a6a1f1dSLionel Sambuc bar
13*0a6a1f1dSLionel Sambuc = foo<T*>;
14*0a6a1f1dSLionel Sambuc }
15*0a6a1f1dSLionel Sambuc 
16*0a6a1f1dSLionel Sambuc // CHECK: [[BINT:![0-9]*]], {{[^,]+, [^,]+}}} ; [ DW_TAG_variable ] [bi]
17*0a6a1f1dSLionel Sambuc // CHECK: [[BINT]] = {{.*}} ; [ DW_TAG_typedef ] [bar<int>] [line 42
18*0a6a1f1dSLionel Sambuc x::bar<int> bi;
19*0a6a1f1dSLionel Sambuc // CHECK: [[BFLOAT:![0-9]*]], {{[^,]+, [^,]+}}} ; [ DW_TAG_variable ] [bf]
20*0a6a1f1dSLionel Sambuc // CHECK: [[BFLOAT]] = {{.*}} ; [ DW_TAG_typedef ] [bar<float>] [line 42
21*0a6a1f1dSLionel Sambuc x::bar<float> bf;
22*0a6a1f1dSLionel Sambuc 
23*0a6a1f1dSLionel Sambuc using
24*0a6a1f1dSLionel Sambuc // CHECK: [[NARF:![0-9]*]], {{[^,]+, [^,]+}}} ; [ DW_TAG_variable ] [n]
25*0a6a1f1dSLionel Sambuc # 142
26*0a6a1f1dSLionel Sambuc narf // CHECK: [[NARF]] = {{.*}} ; [ DW_TAG_typedef ] [narf] [line 142
27*0a6a1f1dSLionel Sambuc = int;
28*0a6a1f1dSLionel Sambuc narf n;
29*0a6a1f1dSLionel Sambuc 
30*0a6a1f1dSLionel Sambuc template <typename T>
31*0a6a1f1dSLionel Sambuc using tv = void;
32*0a6a1f1dSLionel Sambuc // CHECK: null} ; [ DW_TAG_typedef ] [tv<int>] {{.*}} [from ]
33*0a6a1f1dSLionel Sambuc tv<int> *tvp;
34*0a6a1f1dSLionel Sambuc 
35*0a6a1f1dSLionel Sambuc using v = void;
36*0a6a1f1dSLionel Sambuc // CHECK: null} ; [ DW_TAG_typedef ] [v] {{.*}} [from ]
37*0a6a1f1dSLionel Sambuc v *vp;
38