David Blaikie | f1e08ac | 2013-05-09 22:43:45 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -emit-llvm -g %s -o - -std=c++11 | FileCheck %s |
Devang Patel | fa275df | 2011-02-02 21:38:49 +0000 | [diff] [blame] | 2 | |
David Blaikie | f1e08ac | 2013-05-09 22:43:45 +0000 | [diff] [blame^] | 3 | // CHECK: [[INT:![0-9]*]] = {{.*}} ; [ DW_TAG_base_type ] [int] |
David Blaikie | 0cd9ede | 2013-05-09 21:32:04 +0000 | [diff] [blame] | 4 | // CHECK: metadata [[TCI:![0-9]*]], i32 0, i32 1, %class.TC* @tci, null} ; [ DW_TAG_variable ] [tci] |
David Blaikie | f1e08ac | 2013-05-09 22:43:45 +0000 | [diff] [blame^] | 5 | // CHECK: [[TC:![0-9]*]] = {{.*}}, metadata [[TCARGS:![0-9]*]]} ; [ DW_TAG_class_type ] [TC<int, 2, &glb, &foo::e, &foo::f, nullptr>] |
David Blaikie | 0cd9ede | 2013-05-09 21:32:04 +0000 | [diff] [blame] | 6 | // CHECK: [[TCARGS]] = metadata !{metadata [[TCARG1:![0-9]*]], metadata [[TCARG2:![0-9]*]]} |
| 7 | // |
| 8 | // We seem to be missing file/line/col info on template value parameters - |
| 9 | // metadata supports it but it's not populated. |
| 10 | // |
David Blaikie | f1e08ac | 2013-05-09 22:43:45 +0000 | [diff] [blame^] | 11 | // CHECK: [[TCARG1]] = {{.*}}metadata !"T", metadata [[INT]], {{.*}} ; [ DW_TAG_template_type_parameter ] |
David Blaikie | 0cd9ede | 2013-05-09 21:32:04 +0000 | [diff] [blame] | 12 | // CHECK: [[TCARG2]] = {{.*}}metadata !"", metadata [[UINT:![0-9]*]], i64 2, {{.*}} ; [ DW_TAG_template_value_parameter ] |
| 13 | // CHECK: [[UINT]] = {{.*}} ; [ DW_TAG_base_type ] [unsigned int] |
Devang Patel | fa275df | 2011-02-02 21:38:49 +0000 | [diff] [blame] | 14 | |
David Blaikie | f1e08ac | 2013-05-09 22:43:45 +0000 | [diff] [blame^] | 15 | struct foo { |
| 16 | int e; |
| 17 | void f(); |
| 18 | }; |
| 19 | |
| 20 | template<typename T, unsigned, int *x, int foo::*a, void (foo::*b)(), int *n> |
Devang Patel | 700a1cb | 2010-07-20 20:24:18 +0000 | [diff] [blame] | 21 | class TC { |
Devang Patel | 700a1cb | 2010-07-20 20:24:18 +0000 | [diff] [blame] | 22 | }; |
| 23 | |
David Blaikie | f1e08ac | 2013-05-09 22:43:45 +0000 | [diff] [blame^] | 24 | int glb; |
| 25 | |
| 26 | TC<int, 2, &glb, &foo::e, &foo::f, nullptr> tci; |