David Blaikie | f1b382e | 2014-04-06 17:14:06 +0000 | [diff] [blame] | 1 | // RUN: %clang -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s |
| 2 | |
| 3 | template<typename T> |
| 4 | struct foo { |
| 5 | }; |
| 6 | namespace x { |
| 7 | // splitting these over multiple lines to make sure the right token is used for |
| 8 | // the location |
| 9 | template<typename T> |
| 10 | using |
| 11 | # 42 |
| 12 | bar |
| 13 | = foo<T*>; |
| 14 | } |
| 15 | |
Duncan P. N. Exon Smith | 9dd4e4e | 2015-04-29 16:40:08 +0000 | [diff] [blame] | 16 | // CHECK: !DIGlobalVariable(name: "bi",{{.*}} type: [[BINT:![0-9]+]] |
David Blaikie | f1b382e | 2014-04-06 17:14:06 +0000 | [diff] [blame] | 17 | x::bar<int> bi; |
Duncan P. N. Exon Smith | 9dd4e4e | 2015-04-29 16:40:08 +0000 | [diff] [blame] | 18 | // CHECK: !DIGlobalVariable(name: "bf",{{.*}} type: [[BFLOAT:![0-9]+]] |
| 19 | // CHECK: [[BFLOAT]] = !DIDerivedType(tag: DW_TAG_typedef, name: "bar<float>" |
David Blaikie | f1b382e | 2014-04-06 17:14:06 +0000 | [diff] [blame] | 20 | x::bar<float> bf; |
| 21 | |
| 22 | using |
Duncan P. N. Exon Smith | 9dd4e4e | 2015-04-29 16:40:08 +0000 | [diff] [blame] | 23 | // CHECK: !DIGlobalVariable(name: "n",{{.*}} type: [[NARF:![0-9]+]] |
David Blaikie | 80bec83 | 2014-05-01 18:13:24 +0000 | [diff] [blame] | 24 | # 142 |
Duncan P. N. Exon Smith | 9dd4e4e | 2015-04-29 16:40:08 +0000 | [diff] [blame] | 25 | narf // CHECK: [[NARF]] = !DIDerivedType(tag: DW_TAG_typedef, name: "narf" |
Duncan P. N. Exon Smith | f04be1f | 2015-03-03 17:25:55 +0000 | [diff] [blame] | 26 | // CHECK-SAME: line: 142 |
David Blaikie | f1b382e | 2014-04-06 17:14:06 +0000 | [diff] [blame] | 27 | = int; |
| 28 | narf n; |
| 29 | |
David Blaikie | 1c286f6 | 2014-05-01 18:25:19 +0000 | [diff] [blame] | 30 | template <typename T> |
| 31 | using tv = void; |
Duncan P. N. Exon Smith | 9dd4e4e | 2015-04-29 16:40:08 +0000 | [diff] [blame] | 32 | // CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "tv<int>" |
David Blaikie | 1c286f6 | 2014-05-01 18:25:19 +0000 | [diff] [blame] | 33 | tv<int> *tvp; |
| 34 | |
| 35 | using v = void; |
Duncan P. N. Exon Smith | 9dd4e4e | 2015-04-29 16:40:08 +0000 | [diff] [blame] | 36 | // CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "v" |
David Blaikie | 1c286f6 | 2014-05-01 18:25:19 +0000 | [diff] [blame] | 37 | v *vp; |
Peter Collingbourne | eeb56ab | 2016-09-13 01:13:19 +0000 | [diff] [blame] | 38 | |
| 39 | // CHECK: [[BINT]] = !DIDerivedType(tag: DW_TAG_typedef, name: "bar<int>" |
| 40 | // CHECK-SAME: line: 42, |