[dsymutil] Remove old ODR uniquing tests
authorFrederic Riss <friss@apple.com>
Sun, 23 Aug 2015 02:38:37 +0000 (02:38 +0000)
committerFrederic Riss <friss@apple.com>
Sun, 23 Aug 2015 02:38:37 +0000 (02:38 +0000)
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

16 files changed:
test/tools/dsymutil/Inputs/odr-types.h [deleted file]
test/tools/dsymutil/Inputs/odr1.cpp [deleted file]
test/tools/dsymutil/Inputs/odr1.ll [deleted file]
test/tools/dsymutil/Inputs/odr2.cpp [deleted file]
test/tools/dsymutil/Inputs/odr2.ll [deleted file]
test/tools/dsymutil/Inputs/odr3.cpp [deleted file]
test/tools/dsymutil/Inputs/odr3.ll [deleted file]
test/tools/dsymutil/Inputs/odr4.cpp [deleted file]
test/tools/dsymutil/Inputs/odr4.ll [deleted file]
test/tools/dsymutil/Inputs/odr5.cpp [deleted file]
test/tools/dsymutil/Inputs/odr5.ll [deleted file]
test/tools/dsymutil/Inputs/odr6.cpp [deleted file]
test/tools/dsymutil/Inputs/odr6.ll [deleted file]
test/tools/dsymutil/Inputs/odr7.cpp [deleted file]
test/tools/dsymutil/Inputs/odr7.ll [deleted file]
test/tools/dsymutil/X86/odr-1.test [deleted file]

diff --git a/test/tools/dsymutil/Inputs/odr-types.h b/test/tools/dsymutil/Inputs/odr-types.h
deleted file mode 100644 (file)
index 09057dc..0000000
+++ /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<typename T> 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 (file)
index 722247b..0000000
+++ /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 (file)
index 2a56f01..0000000
+++ /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 (file)
index 4c26fb2..0000000
+++ /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 (file)
index 05c6fa8..0000000
+++ /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 (file)
index 1200c67..0000000
+++ /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 (file)
index f3a7c48..0000000
+++ /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 (file)
index 948dbdb..0000000
+++ /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 (file)
index 7e51aea..0000000
+++ /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 (file)
index fd69423..0000000
+++ /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 (file)
index c8208aa..0000000
+++ /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<int>", 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<int>", 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 (file)
index 2893856..0000000
+++ /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 (file)
index 762e4ad..0000000
+++ /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<double>", 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<double>", 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 (file)
index 6056b48..0000000
+++ /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 (file)
index add2403..0000000
+++ /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 (file)
index f39c5ce..0000000
+++ /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]]
-...
-