From 8f7e8462cdf3b0eed913202b81f14e2fead62be4 Mon Sep 17 00:00:00 2001 From: Frederic Riss Date: Sun, 23 Aug 2015 02:38:37 +0000 Subject: [PATCH] [dsymutil] Remove old ODR uniquing tests These tests have been obsoleted by the refactored versions introduced in the previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245804 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/tools/dsymutil/Inputs/odr-types.h | 51 --- test/tools/dsymutil/Inputs/odr1.cpp | 11 - test/tools/dsymutil/Inputs/odr1.ll | 153 --------- test/tools/dsymutil/Inputs/odr2.cpp | 7 - test/tools/dsymutil/Inputs/odr2.ll | 99 ------ test/tools/dsymutil/Inputs/odr3.cpp | 7 - test/tools/dsymutil/Inputs/odr3.ll | 106 ------- test/tools/dsymutil/Inputs/odr4.cpp | 8 - test/tools/dsymutil/Inputs/odr4.ll | 43 --- test/tools/dsymutil/Inputs/odr5.cpp | 7 - test/tools/dsymutil/Inputs/odr5.ll | 101 ------ test/tools/dsymutil/Inputs/odr6.cpp | 7 - test/tools/dsymutil/Inputs/odr6.ll | 100 ------ test/tools/dsymutil/Inputs/odr7.cpp | 5 - test/tools/dsymutil/Inputs/odr7.ll | 62 ---- test/tools/dsymutil/X86/odr-1.test | 423 ------------------------- 16 files changed, 1190 deletions(-) delete mode 100644 test/tools/dsymutil/Inputs/odr-types.h delete mode 100644 test/tools/dsymutil/Inputs/odr1.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr1.ll delete mode 100644 test/tools/dsymutil/Inputs/odr2.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr2.ll delete mode 100644 test/tools/dsymutil/Inputs/odr3.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr3.ll delete mode 100644 test/tools/dsymutil/Inputs/odr4.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr4.ll delete mode 100644 test/tools/dsymutil/Inputs/odr5.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr5.ll delete mode 100644 test/tools/dsymutil/Inputs/odr6.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr6.ll delete mode 100644 test/tools/dsymutil/Inputs/odr7.cpp delete mode 100644 test/tools/dsymutil/Inputs/odr7.ll delete mode 100644 test/tools/dsymutil/X86/odr-1.test diff --git a/test/tools/dsymutil/Inputs/odr-types.h b/test/tools/dsymutil/Inputs/odr-types.h deleted file mode 100644 index 09057dc9683..00000000000 --- a/test/tools/dsymutil/Inputs/odr-types.h +++ /dev/null @@ -1,51 +0,0 @@ -struct S { - int I; - - void incr() __attribute__((always_inline)) { I++; } - void incr(int Add) __attribute__((always_inline)) { I += Add; } - - typedef int SInt; - - struct Nested { - double D; - - template void init(T Val) { D = double(Val); } - }; - - Nested D; - -public: - int foo() { return I; } -}; - -typedef S AliasForS; - -namespace N { -class C { - AliasForS S; -}; -} - -namespace N { -namespace N { -class C { - int S; -}; -} -} - -namespace { - class AnonC { - }; -} - -union U { - class C {} C; - struct S {} S; -}; - -inline int func() { - struct CInsideFunc { int i; }; - auto functor = []() { CInsideFunc dummy; return dummy.i; }; - return functor(); -} diff --git a/test/tools/dsymutil/Inputs/odr1.cpp b/test/tools/dsymutil/Inputs/odr1.cpp deleted file mode 100644 index 722247b2504..00000000000 --- a/test/tools/dsymutil/Inputs/odr1.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "odr-types.h" - -int foo() { - AliasForS s; - N::C nc; - N::N::C nnc; - AnonC ac; - U u; - - return func(); -} diff --git a/test/tools/dsymutil/Inputs/odr1.ll b/test/tools/dsymutil/Inputs/odr1.ll deleted file mode 100644 index 2a56f0188a4..00000000000 --- a/test/tools/dsymutil/Inputs/odr1.ll +++ /dev/null @@ -1,153 +0,0 @@ -; Generated from odr1.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr1.cpp -; ModuleID = 'odr1.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%struct.S = type { i32, %"struct.S::Nested" } -%"struct.S::Nested" = type { double } -%"class.N::C" = type { %struct.S } -%"class.N::N::C" = type { i32 } -%"class.(anonymous namespace)::AnonC" = type { i8 } -%union.U = type { %"class.U::C" } -%"class.U::C" = type { i8 } -%class.anon = type { i8 } -%struct.CInsideFunc = type { i32 } - -; Function Attrs: ssp uwtable -define i32 @_Z3foov() #0 { -entry: - %s = alloca %struct.S, align 8 - %nc = alloca %"class.N::C", align 8 - %nnc = alloca %"class.N::N::C", align 4 - %ac = alloca %"class.(anonymous namespace)::AnonC", align 1 - %u = alloca %union.U, align 1 - call void @llvm.dbg.declare(metadata %struct.S* %s, metadata !59, metadata !60), !dbg !61 - call void @llvm.dbg.declare(metadata %"class.N::C"* %nc, metadata !62, metadata !60), !dbg !63 - call void @llvm.dbg.declare(metadata %"class.N::N::C"* %nnc, metadata !64, metadata !60), !dbg !65 - call void @llvm.dbg.declare(metadata %"class.(anonymous namespace)::AnonC"* %ac, metadata !66, metadata !60), !dbg !69 - call void @llvm.dbg.declare(metadata %union.U* %u, metadata !70, metadata !60), !dbg !71 - %call = call i32 @_Z4funcv(), !dbg !72 - ret i32 %call, !dbg !73 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: inlinehint ssp uwtable -define linkonce_odr i32 @_Z4funcv() #2 { -entry: - %functor = alloca %class.anon, align 1 - call void @llvm.dbg.declare(metadata %class.anon* %functor, metadata !74, metadata !60), !dbg !75 - %call = call i32 @_ZZ4funcvENKUlvE_clEv(%class.anon* %functor), !dbg !76 - ret i32 %call, !dbg !77 -} - -; Function Attrs: inlinehint nounwind ssp uwtable -define linkonce_odr i32 @_ZZ4funcvENKUlvE_clEv(%class.anon* %this) #3 align 2 { -entry: - %this.addr = alloca %class.anon*, align 8 - %dummy = alloca %struct.CInsideFunc, align 4 - store %class.anon* %this, %class.anon** %this.addr, align 8 - call void @llvm.dbg.declare(metadata %class.anon** %this.addr, metadata !78, metadata !60), !dbg !80 - %this1 = load %class.anon*, %class.anon** %this.addr - call void @llvm.dbg.declare(metadata %struct.CInsideFunc* %dummy, metadata !81, metadata !60), !dbg !82 - %i = getelementptr inbounds %struct.CInsideFunc, %struct.CInsideFunc* %dummy, i32 0, i32 0, !dbg !83 - %0 = load i32, i32* %i, align 4, !dbg !83 - ret i32 %0, !dbg !84 -} - -attributes #0 = { ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } -attributes #2 = { inlinehint ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #3 = { inlinehint nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!55, !56, !57} -!llvm.ident = !{!58} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !3, subprograms: !52) -!1 = !DIFile(filename: "odr1.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4, !20, !24, !29, !33, !37, !38, !39, !49} -!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 128, align: 64, elements: !6, identifier: "_ZTS1S") -!5 = !DIFile(filename: "./odr-types.h", directory: "/Inputs") -!6 = !{!7, !9, !10, !14, !17} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "I", scope: !"_ZTS1S", file: !5, line: 2, baseType: !8, size: 32, align: 32) -!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTS1S", file: !5, line: 15, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, offset: 64) -!10 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false) -!11 = !DISubroutineType(types: !12) -!12 = !{null, !13} -!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!14 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false) -!15 = !DISubroutineType(types: !16) -!16 = !{null, !13, !8} -!17 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: false, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false) -!18 = !DISubroutineType(types: !19) -!19 = !{!8, !13} -!20 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !"_ZTS1S", file: !5, line: 9, size: 64, align: 64, elements: !21, identifier: "_ZTSN1S6NestedE") -!21 = !{!22} -!22 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTSN1S6NestedE", file: !5, line: 10, baseType: !23, size: 64, align: 64) -!23 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) -!24 = !DICompositeType(tag: DW_TAG_class_type, name: "C", scope: !25, file: !5, line: 24, size: 128, align: 64, elements: !26, identifier: "_ZTSN1N1CE") -!25 = !DINamespace(name: "N", scope: null, file: !5, line: 23) -!26 = !{!27} -!27 = !DIDerivedType(tag: DW_TAG_member, name: "S", scope: !"_ZTSN1N1CE", file: !5, line: 25, baseType: !28, size: 128, align: 64) -!28 = !DIDerivedType(tag: DW_TAG_typedef, name: "AliasForS", file: !5, line: 21, baseType: !"_ZTS1S") -!29 = !DICompositeType(tag: DW_TAG_class_type, name: "C", scope: !30, file: !5, line: 31, size: 32, align: 32, elements: !31, identifier: "_ZTSN1N1N1CE") -!30 = !DINamespace(name: "N", scope: !25, file: !5, line: 30) -!31 = !{!32} -!32 = !DIDerivedType(tag: DW_TAG_member, name: "S", scope: !"_ZTSN1N1N1CE", file: !5, line: 32, baseType: !8, size: 32, align: 32) -!33 = !DICompositeType(tag: DW_TAG_union_type, name: "U", file: !5, line: 42, size: 8, align: 8, elements: !34, identifier: "_ZTS1U") -!34 = !{!35, !36} -!35 = !DIDerivedType(tag: DW_TAG_member, name: "C", scope: !"_ZTS1U", file: !5, line: 43, baseType: !"_ZTSN1U1CE", size: 8, align: 8) -!36 = !DIDerivedType(tag: DW_TAG_member, name: "S", scope: !"_ZTS1U", file: !5, line: 44, baseType: !"_ZTSN1U1SE", size: 8, align: 8) -!37 = !DICompositeType(tag: DW_TAG_class_type, name: "C", scope: !"_ZTS1U", file: !5, line: 43, size: 8, align: 8, elements: !2, identifier: "_ZTSN1U1CE") -!38 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", scope: !"_ZTS1U", file: !5, line: 44, size: 8, align: 8, elements: !2, identifier: "_ZTSN1U1SE") -!39 = !DICompositeType(tag: DW_TAG_class_type, scope: !40, file: !5, line: 49, size: 8, align: 8, elements: !43, identifier: "_ZTSZ4funcvEUlvE_") -!40 = !DISubprogram(name: "func", linkageName: "_Z4funcv", scope: !5, file: !5, line: 47, type: !41, isLocal: false, isDefinition: true, scopeLine: 47, flags: DIFlagPrototyped, isOptimized: false, function: i32 ()* @_Z4funcv, variables: !2) -!41 = !DISubroutineType(types: !42) -!42 = !{!8} -!43 = !{!44} -!44 = !DISubprogram(name: "operator()", scope: !"_ZTSZ4funcvEUlvE_", file: !5, line: 49, type: !45, isLocal: false, isDefinition: false, scopeLine: 49, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: false) -!45 = !DISubroutineType(types: !46) -!46 = !{!8, !47} -!47 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !48, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!48 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !"_ZTSZ4funcvEUlvE_") -!49 = !DICompositeType(tag: DW_TAG_structure_type, name: "CInsideFunc", scope: !40, file: !5, line: 48, size: 32, align: 32, elements: !50, identifier: "_ZTSZ4funcvE11CInsideFunc") -!50 = !{!51} -!51 = !DIDerivedType(tag: DW_TAG_member, name: "i", scope: !"_ZTSZ4funcvE11CInsideFunc", file: !5, line: 48, baseType: !8, size: 32, align: 32) -!52 = !{!53, !40, !54} -!53 = !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !1, file: !1, line: 3, type: !41, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, function: i32 ()* @_Z3foov, variables: !2) -!54 = !DISubprogram(name: "operator()", linkageName: "_ZZ4funcvENKUlvE_clEv", scope: !"_ZTSZ4funcvEUlvE_", file: !5, line: 49, type: !45, isLocal: false, isDefinition: true, scopeLine: 49, flags: DIFlagPrototyped, isOptimized: false, function: i32 (%class.anon*)* @_ZZ4funcvENKUlvE_clEv, declaration: !44, variables: !2) -!55 = !{i32 2, !"Dwarf Version", i32 2} -!56 = !{i32 2, !"Debug Info Version", i32 3} -!57 = !{i32 1, !"PIC Level", i32 2} -!58 = !{!"clang version 3.8.0 (trunk 242534)"} -!59 = !DILocalVariable(name: "s", scope: !53, file: !1, line: 4, type: !28) -!60 = !DIExpression() -!61 = !DILocation(line: 4, column: 12, scope: !53) -!62 = !DILocalVariable(name: "nc", scope: !53, file: !1, line: 5, type: !"_ZTSN1N1CE") -!63 = !DILocation(line: 5, column: 7, scope: !53) -!64 = !DILocalVariable(name: "nnc", scope: !53, file: !1, line: 6, type: !"_ZTSN1N1N1CE") -!65 = !DILocation(line: 6, column: 10, scope: !53) -!66 = !DILocalVariable(name: "ac", scope: !53, file: !1, line: 7, type: !67) -!67 = !DICompositeType(tag: DW_TAG_class_type, name: "AnonC", scope: !68, file: !5, line: 38, size: 8, align: 8, elements: !2) -!68 = !DINamespace(scope: null, file: !5, line: 37) -!69 = !DILocation(line: 7, column: 8, scope: !53) -!70 = !DILocalVariable(name: "u", scope: !53, file: !1, line: 8, type: !"_ZTS1U") -!71 = !DILocation(line: 8, column: 4, scope: !53) -!72 = !DILocation(line: 10, column: 9, scope: !53) -!73 = !DILocation(line: 10, column: 2, scope: !53) -!74 = !DILocalVariable(name: "functor", scope: !40, file: !5, line: 49, type: !"_ZTSZ4funcvEUlvE_") -!75 = !DILocation(line: 49, column: 7, scope: !40) -!76 = !DILocation(line: 50, column: 9, scope: !40) -!77 = !DILocation(line: 50, column: 2, scope: !40) -!78 = !DILocalVariable(name: "this", arg: 1, scope: !54, type: !79, flags: DIFlagArtificial | DIFlagObjectPointer) -!79 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !48, size: 64, align: 64) -!80 = !DILocation(line: 0, scope: !54) -!81 = !DILocalVariable(name: "dummy", scope: !54, file: !5, line: 49, type: !"_ZTSZ4funcvE11CInsideFunc") -!82 = !DILocation(line: 49, column: 36, scope: !54) -!83 = !DILocation(line: 49, column: 56, scope: !54) -!84 = !DILocation(line: 49, column: 43, scope: !54) diff --git a/test/tools/dsymutil/Inputs/odr2.cpp b/test/tools/dsymutil/Inputs/odr2.cpp deleted file mode 100644 index 4c26fb2d677..00000000000 --- a/test/tools/dsymutil/Inputs/odr2.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "odr-types.h" - -int bar() { - S s; - s.incr(); - return s.foo(); -} diff --git a/test/tools/dsymutil/Inputs/odr2.ll b/test/tools/dsymutil/Inputs/odr2.ll deleted file mode 100644 index 05c6fa89fdc..00000000000 --- a/test/tools/dsymutil/Inputs/odr2.ll +++ /dev/null @@ -1,99 +0,0 @@ -; Generated from odr2.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr2.cpp -; ModuleID = 'odr2.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%struct.S = type { i32, %"struct.S::Nested" } -%"struct.S::Nested" = type { double } - -; Function Attrs: ssp uwtable -define i32 @_Z3barv() #0 { -entry: - %this.addr.i = alloca %struct.S*, align 8 - %s = alloca %struct.S, align 8 - call void @llvm.dbg.declare(metadata %struct.S* %s, metadata !34, metadata !35), !dbg !36 - store %struct.S* %s, %struct.S** %this.addr.i, align 8, !dbg !37 - %this1.i = load %struct.S*, %struct.S** %this.addr.i, !dbg !37 - %I.i = getelementptr inbounds %struct.S, %struct.S* %this1.i, i32 0, i32 0, !dbg !38 - %0 = load i32, i32* %I.i, align 4, !dbg !40 - %inc.i = add nsw i32 %0, 1, !dbg !40 - store i32 %inc.i, i32* %I.i, align 4, !dbg !40 - %call = call i32 @_ZN1S3fooEv(%struct.S* %s), !dbg !41 - call void @llvm.dbg.declare(metadata %struct.S** %this.addr.i, metadata !42, metadata !35), !dbg !44 - ret i32 %call, !dbg !45 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: nounwind ssp uwtable -define linkonce_odr i32 @_ZN1S3fooEv(%struct.S* %this) #2 align 2 { -entry: - %this.addr = alloca %struct.S*, align 8 - store %struct.S* %this, %struct.S** %this.addr, align 8 - call void @llvm.dbg.declare(metadata %struct.S** %this.addr, metadata !46, metadata !35), !dbg !47 - %this1 = load %struct.S*, %struct.S** %this.addr - %I = getelementptr inbounds %struct.S, %struct.S* %this1, i32 0, i32 0, !dbg !48 - %0 = load i32, i32* %I, align 4, !dbg !48 - ret i32 %0, !dbg !49 -} - -attributes #0 = { ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } -attributes #2 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!30, !31, !32} -!llvm.ident = !{!33} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !3, subprograms: !24) -!1 = !DIFile(filename: "odr2.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4, !20} -!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 128, align: 64, elements: !6, identifier: "_ZTS1S") -!5 = !DIFile(filename: "./odr-types.h", directory: "/Inputs") -!6 = !{!7, !9, !10, !14, !17} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "I", scope: !"_ZTS1S", file: !5, line: 2, baseType: !8, size: 32, align: 32) -!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTS1S", file: !5, line: 15, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, offset: 64) -!10 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false) -!11 = !DISubroutineType(types: !12) -!12 = !{null, !13} -!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!14 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false) -!15 = !DISubroutineType(types: !16) -!16 = !{null, !13, !8} -!17 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: false, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false) -!18 = !DISubroutineType(types: !19) -!19 = !{!8, !13} -!20 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !"_ZTS1S", file: !5, line: 9, size: 64, align: 64, elements: !21, identifier: "_ZTSN1S6NestedE") -!21 = !{!22} -!22 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTSN1S6NestedE", file: !5, line: 10, baseType: !23, size: 64, align: 64) -!23 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) -!24 = !{!25, !28, !29} -!25 = !DISubprogram(name: "bar", linkageName: "_Z3barv", scope: !1, file: !1, line: 3, type: !26, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, function: i32 ()* @_Z3barv, variables: !2) -!26 = !DISubroutineType(types: !27) -!27 = !{!8} -!28 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, declaration: !10, variables: !2) -!29 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: true, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false, function: i32 (%struct.S*)* @_ZN1S3fooEv, declaration: !17, variables: !2) -!30 = !{i32 2, !"Dwarf Version", i32 2} -!31 = !{i32 2, !"Debug Info Version", i32 3} -!32 = !{i32 1, !"PIC Level", i32 2} -!33 = !{!"clang version 3.8.0 (trunk 242534)"} -!34 = !DILocalVariable(name: "s", scope: !25, file: !1, line: 4, type: !"_ZTS1S") -!35 = !DIExpression() -!36 = !DILocation(line: 4, column: 4, scope: !25) -!37 = !DILocation(line: 5, column: 2, scope: !25) -!38 = !DILocation(line: 4, column: 47, scope: !28, inlinedAt: !39) -!39 = distinct !DILocation(line: 5, column: 2, scope: !25) -!40 = !DILocation(line: 4, column: 48, scope: !28, inlinedAt: !39) -!41 = !DILocation(line: 6, column: 9, scope: !25) -!42 = !DILocalVariable(name: "this", arg: 1, scope: !28, type: !43, flags: DIFlagArtificial | DIFlagObjectPointer) -!43 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64) -!44 = !DILocation(line: 0, scope: !28, inlinedAt: !39) -!45 = !DILocation(line: 6, column: 2, scope: !25) -!46 = !DILocalVariable(name: "this", arg: 1, scope: !29, type: !43, flags: DIFlagArtificial | DIFlagObjectPointer) -!47 = !DILocation(line: 0, scope: !29) -!48 = !DILocation(line: 18, column: 21, scope: !29) -!49 = !DILocation(line: 18, column: 14, scope: !29) diff --git a/test/tools/dsymutil/Inputs/odr3.cpp b/test/tools/dsymutil/Inputs/odr3.cpp deleted file mode 100644 index 1200c670a48..00000000000 --- a/test/tools/dsymutil/Inputs/odr3.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "odr-types.h" - -int bar() { - S s; - s.incr(42); - return s.foo(); -} diff --git a/test/tools/dsymutil/Inputs/odr3.ll b/test/tools/dsymutil/Inputs/odr3.ll deleted file mode 100644 index f3a7c488eac..00000000000 --- a/test/tools/dsymutil/Inputs/odr3.ll +++ /dev/null @@ -1,106 +0,0 @@ -; Generated from odr3.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr3.cpp -; ModuleID = 'odr3.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%struct.S = type { i32, %"struct.S::Nested" } -%"struct.S::Nested" = type { double } - -; Function Attrs: ssp uwtable -define i32 @_Z3barv() #0 { -entry: - %this.addr.i = alloca %struct.S*, align 8 - %Add.addr.i = alloca i32, align 4 - %s = alloca %struct.S, align 8 - call void @llvm.dbg.declare(metadata %struct.S* %s, metadata !34, metadata !35), !dbg !36 - store %struct.S* %s, %struct.S** %this.addr.i, align 8, !dbg !37 - store i32 42, i32* %Add.addr.i, align 4, !dbg !37 - %this1.i = load %struct.S*, %struct.S** %this.addr.i, !dbg !37 - %0 = load i32, i32* %Add.addr.i, align 4, !dbg !38 - %I.i = getelementptr inbounds %struct.S, %struct.S* %this1.i, i32 0, i32 0, !dbg !40 - %1 = load i32, i32* %I.i, align 4, !dbg !41 - %add.i = add nsw i32 %1, %0, !dbg !41 - store i32 %add.i, i32* %I.i, align 4, !dbg !41 - %call = call i32 @_ZN1S3fooEv(%struct.S* %s), !dbg !42 - call void @llvm.dbg.declare(metadata %struct.S** %this.addr.i, metadata !43, metadata !35), !dbg !45 - call void @llvm.dbg.declare(metadata i32* %Add.addr.i, metadata !46, metadata !35), !dbg !47 - ret i32 %call, !dbg !48 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: nounwind ssp uwtable -define linkonce_odr i32 @_ZN1S3fooEv(%struct.S* %this) #2 align 2 { -entry: - %this.addr = alloca %struct.S*, align 8 - store %struct.S* %this, %struct.S** %this.addr, align 8 - call void @llvm.dbg.declare(metadata %struct.S** %this.addr, metadata !49, metadata !35), !dbg !50 - %this1 = load %struct.S*, %struct.S** %this.addr - %I = getelementptr inbounds %struct.S, %struct.S* %this1, i32 0, i32 0, !dbg !51 - %0 = load i32, i32* %I, align 4, !dbg !51 - ret i32 %0, !dbg !52 -} - -attributes #0 = { ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } -attributes #2 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!30, !31, !32} -!llvm.ident = !{!33} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !3, subprograms: !24) -!1 = !DIFile(filename: "odr3.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4, !20} -!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 128, align: 64, elements: !6, identifier: "_ZTS1S") -!5 = !DIFile(filename: "./odr-types.h", directory: "/Inputs") -!6 = !{!7, !9, !10, !14, !17} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "I", scope: !"_ZTS1S", file: !5, line: 2, baseType: !8, size: 32, align: 32) -!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTS1S", file: !5, line: 15, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, offset: 64) -!10 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false) -!11 = !DISubroutineType(types: !12) -!12 = !{null, !13} -!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!14 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false) -!15 = !DISubroutineType(types: !16) -!16 = !{null, !13, !8} -!17 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: false, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false) -!18 = !DISubroutineType(types: !19) -!19 = !{!8, !13} -!20 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !"_ZTS1S", file: !5, line: 9, size: 64, align: 64, elements: !21, identifier: "_ZTSN1S6NestedE") -!21 = !{!22} -!22 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTSN1S6NestedE", file: !5, line: 10, baseType: !23, size: 64, align: 64) -!23 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) -!24 = !{!25, !28, !29} -!25 = !DISubprogram(name: "bar", linkageName: "_Z3barv", scope: !1, file: !1, line: 3, type: !26, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, function: i32 ()* @_Z3barv, variables: !2) -!26 = !DISubroutineType(types: !27) -!27 = !{!8} -!28 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false, declaration: !14, variables: !2) -!29 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: true, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false, function: i32 (%struct.S*)* @_ZN1S3fooEv, declaration: !17, variables: !2) -!30 = !{i32 2, !"Dwarf Version", i32 2} -!31 = !{i32 2, !"Debug Info Version", i32 3} -!32 = !{i32 1, !"PIC Level", i32 2} -!33 = !{!"clang version 3.8.0 (trunk 242534)"} -!34 = !DILocalVariable(name: "s", scope: !25, file: !1, line: 4, type: !"_ZTS1S") -!35 = !DIExpression() -!36 = !DILocation(line: 4, column: 4, scope: !25) -!37 = !DILocation(line: 5, column: 2, scope: !25) -!38 = !DILocation(line: 5, column: 59, scope: !28, inlinedAt: !39) -!39 = distinct !DILocation(line: 5, column: 2, scope: !25) -!40 = !DILocation(line: 5, column: 54, scope: !28, inlinedAt: !39) -!41 = !DILocation(line: 5, column: 56, scope: !28, inlinedAt: !39) -!42 = !DILocation(line: 6, column: 9, scope: !25) -!43 = !DILocalVariable(name: "this", arg: 1, scope: !28, type: !44, flags: DIFlagArtificial | DIFlagObjectPointer) -!44 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64) -!45 = !DILocation(line: 0, scope: !28, inlinedAt: !39) -!46 = !DILocalVariable(name: "Add", arg: 2, scope: !28, file: !5, line: 5, type: !8) -!47 = !DILocation(line: 5, column: 16, scope: !28, inlinedAt: !39) -!48 = !DILocation(line: 6, column: 2, scope: !25) -!49 = !DILocalVariable(name: "this", arg: 1, scope: !29, type: !44, flags: DIFlagArtificial | DIFlagObjectPointer) -!50 = !DILocation(line: 0, scope: !29) -!51 = !DILocation(line: 18, column: 21, scope: !29) -!52 = !DILocation(line: 18, column: 14, scope: !29) diff --git a/test/tools/dsymutil/Inputs/odr4.cpp b/test/tools/dsymutil/Inputs/odr4.cpp deleted file mode 100644 index 948dbdbd8e5..00000000000 --- a/test/tools/dsymutil/Inputs/odr4.cpp +++ /dev/null @@ -1,8 +0,0 @@ -namespace { - class AnonC { - }; -} - -void baz() { - AnonC ac; -} diff --git a/test/tools/dsymutil/Inputs/odr4.ll b/test/tools/dsymutil/Inputs/odr4.ll deleted file mode 100644 index 7e51aea814a..00000000000 --- a/test/tools/dsymutil/Inputs/odr4.ll +++ /dev/null @@ -1,43 +0,0 @@ -; Generated from odr4.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr4.cpp -; ModuleID = 'odr4.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%"class.(anonymous namespace)::AnonC" = type { i8 } - -; Function Attrs: nounwind ssp uwtable -define void @_Z3bazv() #0 { -entry: - %ac = alloca %"class.(anonymous namespace)::AnonC", align 1 - call void @llvm.dbg.declare(metadata %"class.(anonymous namespace)::AnonC"* %ac, metadata !11, metadata !14), !dbg !15 - ret void, !dbg !16 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -attributes #0 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!7, !8, !9} -!llvm.ident = !{!10} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3) -!1 = !DIFile(filename: "odr4.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4} -!4 = !DISubprogram(name: "baz", linkageName: "_Z3bazv", scope: !1, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true, scopeLine: 6, flags: DIFlagPrototyped, isOptimized: false, function: void ()* @_Z3bazv, variables: !2) -!5 = !DISubroutineType(types: !6) -!6 = !{null} -!7 = !{i32 2, !"Dwarf Version", i32 2} -!8 = !{i32 2, !"Debug Info Version", i32 3} -!9 = !{i32 1, !"PIC Level", i32 2} -!10 = !{!"clang version 3.8.0 (trunk 242534)"} -!11 = !DILocalVariable(name: "ac", scope: !4, file: !1, line: 7, type: !12) -!12 = !DICompositeType(tag: DW_TAG_class_type, name: "AnonC", scope: !13, file: !1, line: 2, size: 8, align: 8, elements: !2) -!13 = !DINamespace(scope: null, file: !1, line: 1) -!14 = !DIExpression() -!15 = !DILocation(line: 7, column: 8, scope: !4) -!16 = !DILocation(line: 8, column: 1, scope: !4) diff --git a/test/tools/dsymutil/Inputs/odr5.cpp b/test/tools/dsymutil/Inputs/odr5.cpp deleted file mode 100644 index fd694239e37..00000000000 --- a/test/tools/dsymutil/Inputs/odr5.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "odr-types.h" - -double baz() { - S::Nested d; - d.init(0); - return d.D; -} diff --git a/test/tools/dsymutil/Inputs/odr5.ll b/test/tools/dsymutil/Inputs/odr5.ll deleted file mode 100644 index c8208aafef0..00000000000 --- a/test/tools/dsymutil/Inputs/odr5.ll +++ /dev/null @@ -1,101 +0,0 @@ -; Generated from odr5.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr5.cpp -; ModuleID = 'odr5.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%"struct.S::Nested" = type { double } - -; Function Attrs: ssp uwtable -define double @_Z3bazv() #0 { -entry: - %d = alloca %"struct.S::Nested", align 8 - call void @llvm.dbg.declare(metadata %"struct.S::Nested"* %d, metadata !39, metadata !40), !dbg !41 - call void @_ZN1S6Nested4initIiEEvT_(%"struct.S::Nested"* %d, i32 0), !dbg !42 - %D = getelementptr inbounds %"struct.S::Nested", %"struct.S::Nested"* %d, i32 0, i32 0, !dbg !43 - %0 = load double, double* %D, align 8, !dbg !43 - ret double %0, !dbg !44 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: nounwind ssp uwtable -define linkonce_odr void @_ZN1S6Nested4initIiEEvT_(%"struct.S::Nested"* %this, i32 %Val) #2 align 2 { -entry: - %this.addr = alloca %"struct.S::Nested"*, align 8 - %Val.addr = alloca i32, align 4 - store %"struct.S::Nested"* %this, %"struct.S::Nested"** %this.addr, align 8 - call void @llvm.dbg.declare(metadata %"struct.S::Nested"** %this.addr, metadata !45, metadata !40), !dbg !47 - store i32 %Val, i32* %Val.addr, align 4 - call void @llvm.dbg.declare(metadata i32* %Val.addr, metadata !48, metadata !40), !dbg !49 - %this1 = load %"struct.S::Nested"*, %"struct.S::Nested"** %this.addr - %0 = load i32, i32* %Val.addr, align 4, !dbg !50 - %conv = sitofp i32 %0 to double, !dbg !50 - %D = getelementptr inbounds %"struct.S::Nested", %"struct.S::Nested"* %this1, i32 0, i32 0, !dbg !51 - store double %conv, double* %D, align 8, !dbg !52 - ret void, !dbg !53 -} - -attributes #0 = { ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } -attributes #2 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!35, !36, !37} -!llvm.ident = !{!38} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !3, subprograms: !24) -!1 = !DIFile(filename: "odr5.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4, !20, !23} -!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 128, align: 64, elements: !6, identifier: "_ZTS1S") -!5 = !DIFile(filename: "./odr-types.h", directory: "/Inputs") -!6 = !{!7, !9, !10, !14, !17} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "I", scope: !"_ZTS1S", file: !5, line: 2, baseType: !8, size: 32, align: 32) -!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTS1S", file: !5, line: 15, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, offset: 64) -!10 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false) -!11 = !DISubroutineType(types: !12) -!12 = !{null, !13} -!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!14 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false) -!15 = !DISubroutineType(types: !16) -!16 = !{null, !13, !8} -!17 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: false, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false) -!18 = !DISubroutineType(types: !19) -!19 = !{!8, !13} -!20 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !"_ZTS1S", file: !5, line: 9, size: 64, align: 64, elements: !21, identifier: "_ZTSN1S6NestedE") -!21 = !{!22} -!22 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTSN1S6NestedE", file: !5, line: 10, baseType: !23, size: 64, align: 64) -!23 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) -!24 = !{!25, !28} -!25 = !DISubprogram(name: "baz", linkageName: "_Z3bazv", scope: !1, file: !1, line: 3, type: !26, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, function: double ()* @_Z3bazv, variables: !2) -!26 = !DISubroutineType(types: !27) -!27 = !{!23} -!28 = !DISubprogram(name: "init", linkageName: "_ZN1S6Nested4initIiEEvT_", scope: !"_ZTSN1S6NestedE", file: !5, line: 12, type: !29, isLocal: false, isDefinition: true, scopeLine: 12, flags: DIFlagPrototyped, isOptimized: false, function: void (%"struct.S::Nested"*, i32)* @_ZN1S6Nested4initIiEEvT_, templateParams: !32, declaration: !34, variables: !2) -!29 = !DISubroutineType(types: !30) -!30 = !{null, !31, !8} -!31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!32 = !{!33} -!33 = !DITemplateTypeParameter(name: "T", type: !8) -!34 = !DISubprogram(name: "init", linkageName: "_ZN1S6Nested4initIiEEvT_", scope: !"_ZTSN1S6NestedE", file: !5, line: 12, type: !29, isLocal: false, isDefinition: false, scopeLine: 12, flags: DIFlagPrototyped, isOptimized: false, templateParams: !32) -!35 = !{i32 2, !"Dwarf Version", i32 2} -!36 = !{i32 2, !"Debug Info Version", i32 3} -!37 = !{i32 1, !"PIC Level", i32 2} -!38 = !{!"clang version 3.8.0 (trunk 242534)"} -!39 = !DILocalVariable(name: "d", scope: !25, file: !1, line: 4, type: !"_ZTSN1S6NestedE") -!40 = !DIExpression() -!41 = !DILocation(line: 4, column: 12, scope: !25) -!42 = !DILocation(line: 5, column: 2, scope: !25) -!43 = !DILocation(line: 6, column: 11, scope: !25) -!44 = !DILocation(line: 6, column: 2, scope: !25) -!45 = !DILocalVariable(name: "this", arg: 1, scope: !28, type: !46, flags: DIFlagArtificial | DIFlagObjectPointer) -!46 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64) -!47 = !DILocation(line: 0, scope: !28) -!48 = !DILocalVariable(name: "Val", arg: 2, scope: !28, file: !5, line: 12, type: !8) -!49 = !DILocation(line: 12, column: 36, scope: !28) -!50 = !DILocation(line: 12, column: 54, scope: !28) -!51 = !DILocation(line: 12, column: 43, scope: !28) -!52 = !DILocation(line: 12, column: 45, scope: !28) -!53 = !DILocation(line: 12, column: 60, scope: !28) diff --git a/test/tools/dsymutil/Inputs/odr6.cpp b/test/tools/dsymutil/Inputs/odr6.cpp deleted file mode 100644 index 2893856ce2a..00000000000 --- a/test/tools/dsymutil/Inputs/odr6.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "odr-types.h" - -double baz() { - S::Nested d; - d.init(0.0); - return d.D; -} diff --git a/test/tools/dsymutil/Inputs/odr6.ll b/test/tools/dsymutil/Inputs/odr6.ll deleted file mode 100644 index 762e4ad0edd..00000000000 --- a/test/tools/dsymutil/Inputs/odr6.ll +++ /dev/null @@ -1,100 +0,0 @@ -; Generated from odr6.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr6.cpp -; ModuleID = 'odr6.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%"struct.S::Nested" = type { double } - -; Function Attrs: ssp uwtable -define double @_Z3bazv() #0 { -entry: - %d = alloca %"struct.S::Nested", align 8 - call void @llvm.dbg.declare(metadata %"struct.S::Nested"* %d, metadata !39, metadata !40), !dbg !41 - call void @_ZN1S6Nested4initIdEEvT_(%"struct.S::Nested"* %d, double 0.000000e+00), !dbg !42 - %D = getelementptr inbounds %"struct.S::Nested", %"struct.S::Nested"* %d, i32 0, i32 0, !dbg !43 - %0 = load double, double* %D, align 8, !dbg !43 - ret double %0, !dbg !44 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: nounwind ssp uwtable -define linkonce_odr void @_ZN1S6Nested4initIdEEvT_(%"struct.S::Nested"* %this, double %Val) #2 align 2 { -entry: - %this.addr = alloca %"struct.S::Nested"*, align 8 - %Val.addr = alloca double, align 8 - store %"struct.S::Nested"* %this, %"struct.S::Nested"** %this.addr, align 8 - call void @llvm.dbg.declare(metadata %"struct.S::Nested"** %this.addr, metadata !45, metadata !40), !dbg !47 - store double %Val, double* %Val.addr, align 8 - call void @llvm.dbg.declare(metadata double* %Val.addr, metadata !48, metadata !40), !dbg !49 - %this1 = load %"struct.S::Nested"*, %"struct.S::Nested"** %this.addr - %0 = load double, double* %Val.addr, align 8, !dbg !50 - %D = getelementptr inbounds %"struct.S::Nested", %"struct.S::Nested"* %this1, i32 0, i32 0, !dbg !51 - store double %0, double* %D, align 8, !dbg !52 - ret void, !dbg !53 -} - -attributes #0 = { ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } -attributes #2 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!35, !36, !37} -!llvm.ident = !{!38} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !3, subprograms: !24) -!1 = !DIFile(filename: "odr6.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4, !20, !23} -!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 128, align: 64, elements: !6, identifier: "_ZTS1S") -!5 = !DIFile(filename: "./odr-types.h", directory: "/Inputs") -!6 = !{!7, !9, !10, !14, !17} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "I", scope: !"_ZTS1S", file: !5, line: 2, baseType: !8, size: 32, align: 32) -!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTS1S", file: !5, line: 15, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, offset: 64) -!10 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false) -!11 = !DISubroutineType(types: !12) -!12 = !{null, !13} -!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!14 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false) -!15 = !DISubroutineType(types: !16) -!16 = !{null, !13, !8} -!17 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: false, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false) -!18 = !DISubroutineType(types: !19) -!19 = !{!8, !13} -!20 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !"_ZTS1S", file: !5, line: 9, size: 64, align: 64, elements: !21, identifier: "_ZTSN1S6NestedE") -!21 = !{!22} -!22 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTSN1S6NestedE", file: !5, line: 10, baseType: !23, size: 64, align: 64) -!23 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) -!24 = !{!25, !28} -!25 = !DISubprogram(name: "baz", linkageName: "_Z3bazv", scope: !1, file: !1, line: 3, type: !26, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, function: double ()* @_Z3bazv, variables: !2) -!26 = !DISubroutineType(types: !27) -!27 = !{!23} -!28 = !DISubprogram(name: "init", linkageName: "_ZN1S6Nested4initIdEEvT_", scope: !"_ZTSN1S6NestedE", file: !5, line: 12, type: !29, isLocal: false, isDefinition: true, scopeLine: 12, flags: DIFlagPrototyped, isOptimized: false, function: void (%"struct.S::Nested"*, double)* @_ZN1S6Nested4initIdEEvT_, templateParams: !32, declaration: !34, variables: !2) -!29 = !DISubroutineType(types: !30) -!30 = !{null, !31, !23} -!31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!32 = !{!33} -!33 = !DITemplateTypeParameter(name: "T", type: !23) -!34 = !DISubprogram(name: "init", linkageName: "_ZN1S6Nested4initIdEEvT_", scope: !"_ZTSN1S6NestedE", file: !5, line: 12, type: !29, isLocal: false, isDefinition: false, scopeLine: 12, flags: DIFlagPrototyped, isOptimized: false, templateParams: !32) -!35 = !{i32 2, !"Dwarf Version", i32 2} -!36 = !{i32 2, !"Debug Info Version", i32 3} -!37 = !{i32 1, !"PIC Level", i32 2} -!38 = !{!"clang version 3.8.0 (trunk 242534)"} -!39 = !DILocalVariable(name: "d", scope: !25, file: !1, line: 4, type: !"_ZTSN1S6NestedE") -!40 = !DIExpression() -!41 = !DILocation(line: 4, column: 12, scope: !25) -!42 = !DILocation(line: 5, column: 2, scope: !25) -!43 = !DILocation(line: 6, column: 11, scope: !25) -!44 = !DILocation(line: 6, column: 2, scope: !25) -!45 = !DILocalVariable(name: "this", arg: 1, scope: !28, type: !46, flags: DIFlagArtificial | DIFlagObjectPointer) -!46 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64) -!47 = !DILocation(line: 0, scope: !28) -!48 = !DILocalVariable(name: "Val", arg: 2, scope: !28, file: !5, line: 12, type: !23) -!49 = !DILocation(line: 12, column: 36, scope: !28) -!50 = !DILocation(line: 12, column: 54, scope: !28) -!51 = !DILocation(line: 12, column: 43, scope: !28) -!52 = !DILocation(line: 12, column: 45, scope: !28) -!53 = !DILocation(line: 12, column: 60, scope: !28) diff --git a/test/tools/dsymutil/Inputs/odr7.cpp b/test/tools/dsymutil/Inputs/odr7.cpp deleted file mode 100644 index 6056b486972..00000000000 --- a/test/tools/dsymutil/Inputs/odr7.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "odr-types.h" - -void foo() { - S::Nested N; -} diff --git a/test/tools/dsymutil/Inputs/odr7.ll b/test/tools/dsymutil/Inputs/odr7.ll deleted file mode 100644 index add240389c9..00000000000 --- a/test/tools/dsymutil/Inputs/odr7.ll +++ /dev/null @@ -1,62 +0,0 @@ -; Generated from odr7.cpp and odr-types.h by running: -; clang -emit-llvm -g -S -std=c++11 odr7.cpp -; ModuleID = 'odr7.cpp' -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.11.0" - -%"struct.S::Nested" = type { double } - -; Function Attrs: nounwind ssp uwtable -define void @_Z3foov() #0 { -entry: - %N = alloca %"struct.S::Nested", align 8 - call void @llvm.dbg.declare(metadata %"struct.S::Nested"* %N, metadata !32, metadata !33), !dbg !34 - ret void, !dbg !35 -} - -; Function Attrs: nounwind readnone -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -attributes #0 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "target-features"="+cx16,+sse,+sse2,+sse3,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!28, !29, !30} -!llvm.ident = !{!31} - -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 242534)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, retainedTypes: !3, subprograms: !24) -!1 = !DIFile(filename: "odr7.cpp", directory: "/Inputs") -!2 = !{} -!3 = !{!4, !20} -!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 128, align: 64, elements: !6, identifier: "_ZTS1S") -!5 = !DIFile(filename: "./odr-types.h", directory: "/Inputs") -!6 = !{!7, !9, !10, !14, !17} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "I", scope: !"_ZTS1S", file: !5, line: 2, baseType: !8, size: 32, align: 32) -!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTS1S", file: !5, line: 15, baseType: !"_ZTSN1S6NestedE", size: 64, align: 64, offset: 64) -!10 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEv", scope: !"_ZTS1S", file: !5, line: 4, type: !11, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false) -!11 = !DISubroutineType(types: !12) -!12 = !{null, !13} -!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1S", size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!14 = !DISubprogram(name: "incr", linkageName: "_ZN1S4incrEi", scope: !"_ZTS1S", file: !5, line: 5, type: !15, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false) -!15 = !DISubroutineType(types: !16) -!16 = !{null, !13, !8} -!17 = !DISubprogram(name: "foo", linkageName: "_ZN1S3fooEv", scope: !"_ZTS1S", file: !5, line: 18, type: !18, isLocal: false, isDefinition: false, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false) -!18 = !DISubroutineType(types: !19) -!19 = !{!8, !13} -!20 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !"_ZTS1S", file: !5, line: 9, size: 64, align: 64, elements: !21, identifier: "_ZTSN1S6NestedE") -!21 = !{!22} -!22 = !DIDerivedType(tag: DW_TAG_member, name: "D", scope: !"_ZTSN1S6NestedE", file: !5, line: 10, baseType: !23, size: 64, align: 64) -!23 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) -!24 = !{!25} -!25 = !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !1, file: !1, line: 3, type: !26, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, function: void ()* @_Z3foov, variables: !2) -!26 = !DISubroutineType(types: !27) -!27 = !{null} -!28 = !{i32 2, !"Dwarf Version", i32 2} -!29 = !{i32 2, !"Debug Info Version", i32 3} -!30 = !{i32 1, !"PIC Level", i32 2} -!31 = !{!"clang version 3.8.0 (trunk 242534)"} -!32 = !DILocalVariable(name: "N", scope: !25, file: !1, line: 4, type: !"_ZTSN1S6NestedE") -!33 = !DIExpression() -!34 = !DILocation(line: 4, column: 12, scope: !25) -!35 = !DILocation(line: 5, column: 1, scope: !25) diff --git a/test/tools/dsymutil/X86/odr-1.test b/test/tools/dsymutil/X86/odr-1.test deleted file mode 100644 index f39c5cef122..00000000000 --- a/test/tools/dsymutil/X86/odr-1.test +++ /dev/null @@ -1,423 +0,0 @@ -# REQUIRES: object-emission -# RUN: rm -rf %t -# RUN: mkdir -p %t -# RUN: llc -filetype=obj %p/../Inputs/odr1.ll -o %t/odr1.o -# RUN: llc -filetype=obj %p/../Inputs/odr2.ll -o %t/odr2.o -# RUN: llc -filetype=obj %p/../Inputs/odr3.ll -o %t/odr3.o -# RUN: llc -filetype=obj %p/../Inputs/odr4.ll -o %t/odr4.o -# RUN: llc -filetype=obj %p/../Inputs/odr5.ll -o %t/odr5.o -# RUN: llc -filetype=obj %p/../Inputs/odr6.ll -o %t/odr6.o -# RUN: llc -filetype=obj %p/../Inputs/odr7.ll -o %t/odr7.o -# RUN: llvm-dsymutil -f -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck -check-prefix=ODR -check-prefix=CHECK %s -# RUN: llvm-dsymutil -f -oso-prepend-path=%t -y %s -no-odr -o - | llvm-dwarfdump -debug-dump=info - | FileCheck -check-prefix=NOODR -check-prefix=CHECK %s - -# Totally made up debug map to test ODR uniquing - ---- -triple: 'x86_64-apple-darwin' -objects: - - filename: odr1.o - symbols: - - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x1000, size: 0x12 } - - { sym: __Z4funcv, objAddr: 0x0, binAddr: 0x2000, size: 0x12 } - - { sym: __ZZ4funcvENKUlvE_clEv, objAddr: 0x0, binAddr: 0x3000, size: 0x12 } - -# Check that all our types are in the first CU. - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr1.cpp" - -# This is "struct S" - -# CHECK: 0x[[S:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# CHECK-NEXT: DW_AT_name{{.*}}"S" -# CHECK-NOT: NULL -# CHECK: 0x[[NESTED:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: DW_AT_name{{.*}}"Nested" -# CHECK: NULL -# CHECK: DW_TAG_subprogram -# CHECK: DW_AT_MIPS_linkage_name{{.*}}"_ZN1S4incrEv" -# CHECK: NULL -# CHECK: DW_TAG_subprogram -# CHECK: DW_AT_MIPS_linkage_name{{.*}}"_ZN1S4incrEi" -# CHECK: NULL -# CHECK: DW_TAG_subprogram -# CHECK: DW_AT_MIPS_linkage_name{{.*}}"_ZN1S3fooEv" -# CHECK: NULL -# CHECK: NULL - -# This is "class N::C" - -# CHECK: DW_TAG_namespace -# CHECK-NEXT: DW_AT_name{{.*}}"N" -# CHECK-NOT: NULL -# CHECK: 0x[[NC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# CHECK-NEXT: DW_AT_name{{.*}}"C" -# CHECK: NULL - -# This is "class N::N::C" - -# CHECK: DW_TAG_namespace -# CHECK-NEXT: DW_AT_name{{.*}}"N" -# CHECK-NOT: NULL -# CHECK: 0x[[NNC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# CHECK-NEXT: DW_AT_name{{.*}}"C" -# CHECK: NULL -# CHECK: NULL -# CHECK: NULL - -# This is "AliasForS" -# CHECK: 0x[[ALIASFORS:[0-9a-f]*]]:{{.*}}DW_TAG_typedef -# CHECK-NEXT: DW_AT_type{{.*}}[[S]] -# CHECK-NEXT: DW_AT_name{{.*}}"AliasForS" - -# This is "union U" - -# CHECK: 0x[[U:[0-9a-f]*]]:{{.*}}DW_TAG_union_type -# CHECK-NEXT: DW_AT_name{{.*}}"U" -# CHECK-NOT: NULL -# CHECK: 0x[[UC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# CHECK-NOT: NULL -# CHECK: 0x[[US:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# CHECK: NULL - -# This is "func" free function - -# CHECK: DW_TAG_subprogram -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: DW_AT_name{{.*}}"func" -# CHECK: 0x[[CINSIDEFUNC:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# CHECK-NEXT: DW_AT_name{{.*}}"CInsideFunc" - -# This is "(anonymous namespace)::AnonC" - -# CHECK: DW_TAG_namespace -# CHECK-NOT: {{DW_AT_name|NULL|DW_TAG}} -# CHECK: 0x[[ANONC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# CHECK-NEXT: DW_AT_name{{.*}}"AnonC" - - - filename: odr1.o - symbols: - - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x4000, size: 0x12 } - - { sym: __Z4funcv, objAddr: 0x0, binAddr: 0x5000, size: 0x12 } - - { sym: __ZZ4funcvENKUlvE_clEv, objAddr: 0x0, binAddr: 0x6000, size: 0x12 } - -# We relink the same file a second time. In the ODR case, everything (except for the -# union for now) should be uniqued. In the non-ODR case, we should get every type -# duplicated. - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr1.cpp" - -# ODR: DW_TAG_union_type -# ODR-NEXT: DW_AT_name{{.*}}"U" -# Types defined inside the union should be uniqued: -# ODR: DW_TAG_member -# ODR-NEXT: DW_AT_name{{.*}}"C" -# ODR-NOT: {{NULL|DW_TAG}} -# ODR: DW_AT_type{{.*}}[[UC]] -# ODR: DW_TAG_member -# ODR-NEXT: DW_AT_name{{.*}}"S" -# ODR-NOT: {{NULL|DW_TAG}} -# ODR: DW_AT_type{{.*}}[[US]] - -# Skip func -# ODR: DW_TAG_subprogram -# ODR-NOT: {{NULL|DW_TAG}} -# ODR: DW_AT_name{{.*}}"func" -# ODR: NULL - -# ODR: DW_TAG_subprogram -# ODR-NOT: {{NULL|DW_TAG}} -# ODR: DW_AT_name{{.*}}"foo" -# ODR-NOT: NULL -# ODR: DW_TAG_variable -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_name{{.*}}"s" -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_type{{.*}}[[ALIASFORS]] -# ODR: DW_TAG_variable -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_name{{.*}}"nc" -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_type{{.*}}[[NC]] -# ODR: DW_TAG_variable -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_name{{.*}}"nnc" -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_type{{.*}}[[NNC]] -# ODR: DW_TAG_variable -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_name{{.*}}"ac" -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_type{{.*}}[[ANONC]] - -# ODR: DW_TAG_subprogram -# ODR-NOT: {{NULL|DW_TAG}} -# ODR: linkage_name{{.*}}"_ZZ4funcvENKUlvE_clEv" -# ODR-NOT: NULL -# ODR: DW_TAG_variable -# ODR-NOT: DW_TAG -# ODR: DW_AT_name{{.*}}"dummy" -# ODR-NOT: NULL -# ODR: DW_AT_type{{.*}}[[CINSIDEFUNC]] - -# With no ODR uniquing, we should get copies of all the types: - -# This is "struct S" -# NOODR: 0x[[DUP_S:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# NOODR-NEXT: DW_AT_name{{.*}}"S" - -# This is "class N::C" -# NOODR: DW_TAG_namespace -# NOODR-NEXT: DW_AT_name{{.*}}"N" -# NOODR: 0x[[DUP_NC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# NOODR-NEXT: DW_AT_name{{.*}}"C" - -# This is "class N::N::C" -# NOODR: DW_TAG_namespace -# NOODR-NEXT: DW_AT_name{{.*}}"N" -# NOODR: 0x[[DUP_NNC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# NOODR-NEXT: DW_AT_name{{.*}}"C" - -# This is "AliasForS" -# NOODR: 0x[[DUP_ALIASFORS:[0-9a-f]*]]:{{.*}}DW_TAG_typedef -# NOODR-NOT: {{NULL|DW_TAG}} -# NOODR: DW_AT_name{{.*}}"AliasForS" - -# This is "union U" - -# NOODR: 0x[[U:[0-9a-f]*]]:{{.*}}DW_TAG_union_type -# NOODR-NEXT: DW_AT_name{{.*}}"U" -# NOODR-NOT: NULL -# NOODR: 0x[[DUP_UC:[0-9a-f]*]]:{{.*}}DW_TAG_class_type -# NOODR-NOT: NULL -# NOODR: 0x[[DUP_US:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# NOODR: NULL - -# This is "func" free function - -# NOODR: DW_TAG_subprogram -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_name{{.*}}"func" -# NOODR: 0x[[DUP_CINSIDEFUNC:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# NOODR-NEXT: DW_AT_name{{.*}}"CInsideFunc" - -# NOODR: DW_TAG_subprogram -# NOODR-NOT: {{NULL|DW_TAG}} -# NOODR: DW_AT_name{{.*}}"foo" -# NOODR-NOT: NULL -# NOODR: DW_TAG_variable -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_name{{.*}}"s" -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_type{{.*}}[[DUP_ALIASFORS]] -# NOODR: DW_TAG_variable -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_name{{.*}}"nc" -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_type{{.*}}[[DUP_NC]] -# NOODR: DW_TAG_variable -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_name{{.*}}"nnc" -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_type{{.*}}[[DUP_NNC]] -# NOODR: DW_TAG_variable -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_name{{.*}}"ac" -# NOODR-NOT: {{DW_TAG|NULL}} -# NOODR: DW_AT_type{{.*}}0x[[DUP_ANONC:[0-9a-f]*]] - -# This is the lanbda inside func - -# NOODR: DW_TAG_subprogram -# NOODR-NOT: {{NULL|DW_TAG}} -# NOODR: linkage_name{{.*}}"_ZZ4funcvENKUlvE_clEv" -# NOODR-NOT: NULL -# NOODR: DW_TAG_variable -# NOODR-NOT: DW_TAG -# NOODR: DW_AT_name{{.*}}"dummy" -# NOODR-NOT: NULL -# NOODR: DW_AT_type{{.*}}[[DUP_CINSIDEFUNC]] - -# This is "(anonymous namespace)::AnonC" - -# NOODR: DW_TAG_namespace -# NOODR-NOT: {{DW_AT_name|NULL|DW_TAG}} -# NOODR: 0x[[DUP_ANONC]]:{{.*}}DW_TAG_class_type -# NOODR-NEXT: DW_AT_name{{.*}}"AnonC" - - - filename: odr2.o - symbols: - - { sym: __ZN1S3fooEv, objAddr: 0x0, binAddr: 0x7000, size: 0x12 } - - { sym: __Z3barv, objAddr: 0x0, binAddr: 0x8000, size: 0x12 } - - filename: odr3.o - symbols: - - { sym: __ZN1S3fooEv, objAddr: 0x0, binAddr: 0x8000, size: 0x12 } - - { sym: __Z3barv, objAddr: 0x0, binAddr: 0x9000, size: 0x12 } - -# odr2.cpp and odr3.cpp test that a simple overloaded function doesn't break the -# uniquing (contrary to what we'll see with template/artificial) functions. - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr2.cpp" - -# NO-ODR: DW_TAG_structure_type -# ODR-NOT: DW_TAG_structure_type - -# ODR: DW_TAG_subprogram -# ODR: DW_AT_specification{{.*}}4incr -# ODR: DW_TAG_formal_parameter -# ODR-NEXT: DW_AT_name{{.*}}"this" -# ODR-NEXT: DW_AT_type{{.*}}0x00000000[[S_PTR:[0-9a-f]*]] -# ODR: 0x[[S_PTR]]:{{.*}}DW_TAG_pointer_type -# ODR-NEXT: DW_AT_type{{.*}}[[S]] -# ODR: DW_TAG_subprogram -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_name{{.*}}"bar" -# ODR-NOT: NULL -# ODR: DW_TAG_variable -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_type{{.*}}[[S]] -# ODR-NOT NULL -# DOR: DW_TAG_inlined_subroutine -# ODR-NOT NULL -# ODR: DW_TAG_formal_parameter -# ODR-NOT {{NULL|DW_TAG}} -# ODR: DW_AT_type{{.*}}[[S_PTR]] - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr3.cpp" - -# NO-ODR: DW_TAG_structure_type -# ODR-NOT: DW_TAG_structure_type - -# ODR: DW_TAG_subprogram -# ODR: DW_AT_specification{{.*}}4incr -# ODR: DW_TAG_formal_parameter -# ODR-NEXT: DW_AT_name{{.*}}"this" -# ODR-NEXT: DW_AT_type{{.*}}0x00000000[[S_PTR2:[0-9a-f]*]] -# ODR: 0x[[S_PTR2]]:{{.*}}DW_TAG_pointer_type -# ODR-NEXT: DW_AT_type{{.*}}[[S]] -# ODR: DW_TAG_subprogram -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_name{{.*}}"bar" -# ODR-NOT: NULL -# ODR: DW_TAG_variable -# ODR-NOT: {{DW_TAG|NULL}} -# ODR: DW_AT_type{{.*}}[[S]] -# ODR-NOT NULL -# DOR: DW_TAG_inlined_subroutine -# ODR-NOT NULL -# ODR: DW_TAG_formal_parameter -# ODR-NOT {{NULL|DW_TAG}} -# ODR: DW_AT_type{{.*}}[[S_PTR2]] - - - filename: odr4.o - symbols: - - { sym: __Z3bazv, objAddr: 0x0, binAddr: 0xa000, size: 0x12 } - -# odr4.cpp helps check that anonymous namespaces with similarly named contents do -# not get uniqued. - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr4.cpp" - -# CHECK: DW_TAG_subprogram -# CHECK-NOT: NULL -# CHECK: DW_TAG_variable -# CHECK-NOT: DW_TAG -# ODR: DW_AT_type{{.*}}[[LOCALANONC:........]]) -# NOODR: DW_AT_type{{.*}}[[LOCALANONC:........]]}) - -# CHECK: DW_TAG_namespace -# CHECK-NOT: DW_AT_name -# CHECK: [[LOCALANONC]]{{.*}}DW_TAG_class_type -# CHECK-NOT: {{NULL|DW_TAG}} -# CHECK: DW_AT_name{{.*}}"AnonC" - - - filename: odr5.o - symbols: - - { sym: __Z3bazv, objAddr: 0x0, binAddr: 0xb000, size: 0x12 } - - { sym: __ZN1S6Nested4initIiEEvT_, objAddr: 0x0, binAddr: 0xc000, size: 0x12 } - - filename: odr6.o - symbols: - - { sym: __Z3bazv, objAddr: 0x0, binAddr: 0xd000, size: 0x12 } - - { sym: __ZN1S6Nested4initIdEEvT_, objAddr: 0x0, binAddr: 0xe000, size: 0x12 } - -# odr5.cpp and odr6.cpp instanciate a template member function of the S class. -# They instanciate it with different types. As DWARF only describes the actual -# intances, these members aren't described in the uniqued class definition of -# odr1.cpp. Both these files should contain a new copy of S' definition with -# the template instance included. - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr5.cpp" - -# CHECK: 0x{{[0-9a-f]*}}:{{.*}}DW_TAG_structure_type -# CHECK-NEXT: DW_AT_name{{.*}}"S" -# CHECK-NOT: NULL -# CHECK: 0x[[NESTED2:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: DW_AT_name{{.*}}"Nested" -# CHECK-NOT: NULL -# CHECK: 0x[[INITTEMPLATE:[0-9a-f]*]]:{{.*}}DW_TAG_subprogram -# CHECK-NEXT:{{.*}}"_ZN1S6Nested4init - -# CHECK: DW_AT_specification{{.*}}[[INITTEMPLATE]] -# CHECK: DW_TAG_formal_parameter -# CHECK-NOT: DW_TAG -# CHECK: DW_AT_type{{.*}}[[NESTED_PTR:[0-9a-f]{8}]]{{[}]?}}) - -# CHECK: 0x[[NESTED_PTR]]{{.*}}DW_TAG_pointer_type -# ODR-NEXT: DW_AT_type{{.*}}[[NESTED]] -# NOODR-NEXT: DW_AT_type{{.*}}[[NESTED2]] - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr6.cpp" - -# CHECK: 0x{{[0-9a-f]*}}:{{.*}}DW_TAG_structure_type -# CHECK-NEXT: DW_AT_name{{.*}}"S" -# CHECK-NOT: NULL -# CHECK: 0x[[NESTED3:[0-9a-f]*]]:{{.*}}DW_TAG_structure_type -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: DW_AT_name{{.*}}"Nested" -# CHECK-NOT: NULL -# CHECK: 0x[[INITTEMPLATE2:[0-9a-f]*]]:{{.*}}DW_TAG_subprogram -# CHECK-NEXT:{{.*}}"_ZN1S6Nested4init - -# CHECK: DW_AT_specification{{.*}}[[INITTEMPLATE2]] -# CHECK: DW_TAG_formal_parameter -# CHECK-NOT: DW_TAG -# CHECK: DW_AT_type{{.*}}[[NESTED_PTR2:[0-9a-f]{8}]]{{[}]?}}) - -# CHECK: 0x[[NESTED_PTR2]]{{.*}}DW_TAG_pointer_type -# ODR-NEXT: DW_AT_type{{.*}}[[NESTED]] -# NOODR-NEXT: DW_AT_type{{.*}}[[NESTED3]] - - - filename: odr7.o - symbols: - - { sym: __Z3foov, objAddr: 0x0, binAddr: 0xf000, size: 0x12 } - -# Check that a reference to a nested class correctly refers to the original -# definition - -# CHECK: TAG_compile_unit -# CHECK-NOT: {{DW_TAG|NULL}} -# CHECK: AT_name{{.*}}"odr7.cpp" - -# ODR: DW_TAG_subprogram -# ODR-NOT: NULL -# ODR: DW_TAG_variable -# ODR-NOT: DW_TAG -# ODR: DW_AT_type{{.*}}[[NESTED]] -... - -- 2.34.1