Eric Christopher | 85b9e8c | 2011-12-17 00:35:01 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -emit-llvm -g -triple x86_64-apple-darwin %s -o - | FileCheck %s |
Eric Christopher | 435e106 | 2011-12-16 23:40:14 +0000 | [diff] [blame] | 2 | |
| 3 | struct baz { |
| 4 | int h; |
| 5 | baz(int a) : h(a) {} |
| 6 | }; |
| 7 | |
| 8 | struct bar { |
| 9 | baz b; |
| 10 | baz& b_ref; |
| 11 | bar(int x) : b(x), b_ref(b) {} |
| 12 | }; |
| 13 | |
| 14 | int main(int argc, char** argv) { |
| 15 | bar myBar(1); |
| 16 | return 0; |
| 17 | } |
| 18 | |
Eric Christopher | 973bbb6 | 2011-12-16 23:40:18 +0000 | [diff] [blame] | 19 | // Make sure we have two DW_TAG_class_types for baz and bar and no forward |
Eric Christopher | 435e106 | 2011-12-16 23:40:14 +0000 | [diff] [blame] | 20 | // references. |
| 21 | // FIXME: These should be struct types to match the declaration. |
Eric Christopher | 86211df | 2012-02-20 18:05:24 +0000 | [diff] [blame] | 22 | // CHECK: metadata !{i32 {{.*}}, null, metadata !"bar", metadata !6, i32 8, i64 128, i64 64, i32 0, i32 0, null, metadata !20, i32 0, null, null} ; [ DW_TAG_class_type ] |
| 23 | // CHECK: metadata !{i32 {{.*}}, null, metadata !"baz", metadata !6, i32 3, i64 32, i64 32, i32 0, i32 0, null, metadata !23, i32 0, null, null} ; [ DW_TAG_class_type ] |
Devang Patel | c08c88c | 2012-02-03 23:58:39 +0000 | [diff] [blame] | 24 | // CHECK-NOT: metadata !{i32 {{.*}}, null, metadata !"bar", metadata !6, i32 9, i64 0, i64 0, i32 0, i32 4, i32 0, null, i32 0, i32 0} ; [ DW_TAG_class_type ] |
| 25 | // CHECK-NOT: metadata !{i32 {{.*}}, null, metadata !"baz", metadata !6, i32 3, i64 0, i64 0, i32 0, i32 4, null, null, i32 0, null, null} ; [ DW_TAG_class_type ] |
Eric Christopher | 973bbb6 | 2011-12-16 23:40:18 +0000 | [diff] [blame] | 26 | |