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