From 4f6f15d2df3a53597d218f3224a4496e19b9d01e Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Sun, 17 Apr 2016 00:26:17 +0000 Subject: [PATCH] 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 --- llvm/test/Linker/type-unique-odr-a.ll | 40 ++++++++++++++++++++--------------- 1 file 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 fe3ae5b..eeb1db7 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 } -- 2.7.4