Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 1 | ; REQUIRES: object-emission |
| 2 | |
| 3 | ; RUN: llc -O0 -filetype=obj < %s > %t |
| 4 | ; RUN: llvm-dwarfdump %t | FileCheck %s |
| 5 | |
Eric Christopher | b58bddf | 2013-08-12 23:59:26 +0000 | [diff] [blame] | 6 | ; This was pulled from clang's debug-info-template-recursive.cpp test. |
| 7 | ; class base { }; |
| 8 | |
| 9 | ; template <class T> class foo : public base { |
| 10 | ; void operator=(const foo r) { } |
| 11 | ; }; |
| 12 | |
| 13 | ; class bar : public foo<void> { }; |
| 14 | ; bar filters; |
| 15 | |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 16 | ; CHECK: DW_TAG_template_type_parameter [10] |
| 17 | ; CHECK-NEXT: DW_AT_name{{.*}}"T" |
| 18 | ; CHECK-NOT: DW_AT_type |
| 19 | ; CHECK: NULL |
| 20 | |
| 21 | %class.bar = type { i8 } |
| 22 | |
| 23 | @filters = global %class.bar zeroinitializer, align 1 |
| 24 | |
| 25 | !llvm.dbg.cu = !{!0} |
| 26 | !llvm.module.flags = !{!36} |
| 27 | |
| 28 | !0 = metadata !{i32 786449, metadata !1, i32 4, metadata !"clang version 3.4 (trunk 187958) (llvm/trunk 187964)", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !2, metadata !3, metadata !2, metadata !""} ; [ DW_TAG_compile_unit ] [/usr/local/google/home/echristo/tmp/debug-info-template-recursive.cpp] [DW_LANG_C_plus_plus] |
| 29 | !1 = metadata !{metadata !"debug-info-template-recursive.cpp", metadata !"/usr/local/google/home/echristo/tmp"} |
| 30 | !2 = metadata !{i32 0} |
| 31 | !3 = metadata !{metadata !4} |
| 32 | !4 = metadata !{i32 786484, i32 0, null, metadata !"filters", metadata !"filters", metadata !"", metadata !5, i32 10, metadata !6, i32 0, i32 1, %class.bar* @filters, null} ; [ DW_TAG_variable ] [filters] [line 10] [def] |
| 33 | !5 = metadata !{i32 786473, metadata !1} ; [ DW_TAG_file_type ] [/usr/local/google/home/echristo/tmp/debug-info-template-recursive.cpp] |
Manman Ren | 6e3cd0e | 2013-08-26 22:39:55 +0000 | [diff] [blame] | 34 | !6 = metadata !{i32 786434, metadata !1, null, metadata !"bar", i32 9, i64 8, i64 8, i32 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_class_type ] [bar] [line 9, size 8, align 8, offset 0] [def] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 35 | !7 = metadata !{metadata !8, metadata !31} |
| 36 | !8 = metadata !{i32 786460, null, metadata !6, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !9} ; [ DW_TAG_inheritance ] [line 0, size 0, align 0, offset 0] [from foo<void>] |
Manman Ren | 6e3cd0e | 2013-08-26 22:39:55 +0000 | [diff] [blame] | 37 | !9 = metadata !{i32 786434, metadata !1, null, metadata !"foo<void>", i32 5, i64 8, i64 8, i32 0, i32 0, null, metadata !10, i32 0, null, metadata !29, null} ; [ DW_TAG_class_type ] [foo<void>] [line 5, size 8, align 8, offset 0] [def] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 38 | !10 = metadata !{metadata !11, metadata !19, metadata !25} |
| 39 | !11 = metadata !{i32 786460, null, metadata !9, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !12} ; [ DW_TAG_inheritance ] [line 0, size 0, align 0, offset 0] [from base] |
Manman Ren | 6e3cd0e | 2013-08-26 22:39:55 +0000 | [diff] [blame] | 40 | !12 = metadata !{i32 786434, metadata !1, null, metadata !"base", i32 3, i64 8, i64 8, i32 0, i32 0, null, metadata !13, i32 0, null, null, null} ; [ DW_TAG_class_type ] [base] [line 3, size 8, align 8, offset 0] [def] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 41 | !13 = metadata !{metadata !14} |
| 42 | !14 = metadata !{i32 786478, metadata !1, metadata !12, metadata !"base", metadata !"base", metadata !"", i32 3, metadata !15, i1 false, i1 false, i32 0, i32 0, null, i32 320, i1 false, null, null, i32 0, metadata !18, i32 3} ; [ DW_TAG_subprogram ] [line 3] [base] |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 43 | !15 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !16, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 44 | !16 = metadata !{null, metadata !17} |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 45 | !17 = metadata !{i32 786447, i32 0, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 1088, metadata !12} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from base] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 46 | !18 = metadata !{i32 786468} |
| 47 | !19 = metadata !{i32 786478, metadata !1, metadata !9, metadata !"operator=", metadata !"operator=", metadata !"_ZN3fooIvEaSES0_", i32 6, metadata !20, i1 false, i1 false, i32 0, i32 0, null, i32 257, i1 false, null, null, i32 0, metadata !24, i32 6} ; [ DW_TAG_subprogram ] [line 6] [private] [operator=] |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 48 | !20 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !21, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 49 | !21 = metadata !{null, metadata !22, metadata !23} |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 50 | !22 = metadata !{i32 786447, i32 0, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 1088, metadata !9} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from foo<void>] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 51 | !23 = metadata !{i32 786470, null, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, metadata !9} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from foo<void>] |
| 52 | !24 = metadata !{i32 786468} |
| 53 | !25 = metadata !{i32 786478, metadata !1, metadata !9, metadata !"foo", metadata !"foo", metadata !"", i32 5, metadata !26, i1 false, i1 false, i32 0, i32 0, null, i32 320, i1 false, null, null, i32 0, metadata !28, i32 5} ; [ DW_TAG_subprogram ] [line 5] [foo] |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 54 | !26 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !27, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 55 | !27 = metadata !{null, metadata !22} |
| 56 | !28 = metadata !{i32 786468} |
| 57 | !29 = metadata !{metadata !30} |
| 58 | !30 = metadata !{i32 786479, null, metadata !"T", null, null, i32 0, i32 0} ; [ DW_TAG_template_type_parameter ] |
| 59 | !31 = metadata !{i32 786478, metadata !1, metadata !6, metadata !"bar", metadata !"bar", metadata !"", i32 9, metadata !32, i1 false, i1 false, i32 0, i32 0, null, i32 320, i1 false, null, null, i32 0, metadata !35, i32 9} ; [ DW_TAG_subprogram ] [line 9] [bar] |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 60 | !32 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !33, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 61 | !33 = metadata !{null, metadata !34} |
Manman Ren | 1307103 | 2013-09-06 21:03:58 +0000 | [diff] [blame^] | 62 | !34 = metadata !{i32 786447, i32 0, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 1088, metadata !6} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from bar] |
Eric Christopher | 76ef79f | 2013-08-08 08:09:43 +0000 | [diff] [blame] | 63 | !35 = metadata !{i32 786468} |
| 64 | !36 = metadata !{i32 2, metadata !"Dwarf Version", i32 3} |