diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-17 00:26:17 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-17 00:26:17 +0000 |
commit | 4f6f15d2df3a53597d218f3224a4496e19b9d01e (patch) | |
tree | 41b2baf24016ffd7a18094294ebd12c2849168f3 | |
parent | f22912780dd565f5cc1f173a90f1460f2a0d28b1 (diff) | |
download | bcm5719-llvm-4f6f15d2df3a53597d218f3224a4496e19b9d01e.tar.gz bcm5719-llvm-4f6f15d2df3a53597d218f3224a4496e19b9d01e.zip |
Linker: Clarify test/Linker/type-unique-odr-a.ll, NFC
Split up the long RUN and clarify the CHECK lines:
- Explicitly confirm there are no other subprograms inside of "A".
- Remove checks for "bar" and "baz", which were just implicitly
checking that there were no other subprograms inside of "A".
This prepares for adding a RUN line which links the two files in the
opposite direction.
llvm-svn: 266543
-rw-r--r-- | llvm/test/Linker/type-unique-odr-a.ll | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/llvm/test/Linker/type-unique-odr-a.ll b/llvm/test/Linker/type-unique-odr-a.ll index fe3ae5b2540..eeb1db763eb 100644 --- a/llvm/test/Linker/type-unique-odr-a.ll +++ b/llvm/test/Linker/type-unique-odr-a.ll @@ -1,6 +1,9 @@ ; REQUIRES: default_triple, object-emission ; -; RUN: llvm-link %s %p/type-unique-odr-b.ll -S -o - | %llc_dwarf -dwarf-linkage-names=Enable -filetype=obj -O0 | llvm-dwarfdump -debug-dump=info - | FileCheck %s +; RUN: llvm-link %s %p/type-unique-odr-b.ll -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. @@ -24,26 +27,29 @@ ; ; CHECK: DW_TAG_class_type ; CHECK-NEXT: DW_AT_name {{.*}} "A" +; CHECK-NOT: DW_TAG +; CHECK: DW_TAG_member +; CHECK-NEXT: DW_AT_name {{.*}} "data" +; CHECK-NOT: DW_TAG +; CHECK: DW_TAG_subprogram +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_linkage_name {{.*}} "_ZN1A6getFooEv" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}} "getFoo" + +; Ensure that there aren't any other subprograms in class A. +; CHECK-NOT: DW_TAG +; CHECK: DW_TAG_formal_parameter +; CHECK-NOT: DW_TAG +; CHECK: NULL +; CHECK-NOT: DW_TAG +; CHECK: NULL ; CHECK-NOT: DW_TAG -; CHECK: DW_TAG_member -; CHECK-NEXT: DW_AT_name {{.*}} "data" -; CHECK-NOT: DW_TAG -; CHECK: DW_TAG_subprogram -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_linkage_name {{.*}} "_ZN1A6getFooEv" -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_name {{.*}} "getFoo" -; CHECK: DW_TAG_subprogram -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_linkage_name {{.*}} "_Z3bazv" -; CHECK: DW_TAG_subprogram -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_linkage_name {{.*}} "_ZL3barv" +; CHECK: DW_TAG_base_type -; getFoo and A may only appear once. +; Ensure that getFoo and A are only emitted once. ; CHECK-NOT: AT_name{{.*(getFoo)|("A")}} - ; ModuleID = 'type-unique-odr-a.cpp' %class.A = type { i32 } |