diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-17 02:30:20 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-17 02:30:20 +0000 |
commit | 12a8b1475d25c2ca9888aa6cdeeaf3028bcc7cca (patch) | |
tree | 49ffd4f6c9b8e1ade8a30c3f3db241b68c44f545 /test/Linker/type-unique-odr-a.ll | |
parent | 9e15d9af12be5f581e639fb8a33d182bda4682ac (diff) |
IR: Use ODR to unique DICompositeType members
Merge members that are describing the same member of the same ODR type,
even if other bits differ. If the file or line differ, we don't care;
if anything else differs, it's an ODR violation (and we still don't
really care).
For DISubprogram declarations, this looks at the LinkageName and Scope.
For DW_TAG_member instances of DIDerivedType, this looks at the Name and
Scope. In both cases, we know that the Scope follows ODR rules if it
has a non-empty identifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266548 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Linker/type-unique-odr-a.ll')
-rw-r--r-- | test/Linker/type-unique-odr-a.ll | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/test/Linker/type-unique-odr-a.ll b/test/Linker/type-unique-odr-a.ll index eeb1db763eb..d7640ea761c 100644 --- a/test/Linker/type-unique-odr-a.ll +++ b/test/Linker/type-unique-odr-a.ll @@ -4,6 +4,10 @@ ; RUN: | %llc_dwarf -dwarf-linkage-names=Enable -filetype=obj -O0 \ ; RUN: | llvm-dwarfdump -debug-dump=info - \ ; RUN: | FileCheck %s +; RUN: llvm-link %p/type-unique-odr-b.ll %s -S -o - \ +; RUN: | %llc_dwarf -dwarf-linkage-names=Enable -filetype=obj -O0 \ +; RUN: | llvm-dwarfdump -debug-dump=info - \ +; RUN: | FileCheck %s ; ; Test ODR-based type uniquing for C++ class members. ; rdar://problem/15851313. |