From 87e92eb4391463518b69d6edfef01d0d82224fdc Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Tue, 15 Jul 2014 21:06:37 +0000 Subject: [PATCH] Try out FileCheck's new (in r212810) -implicit-check-not in a DebugInfo test. Just tried this on a few tests and this was the only one that was easily ported to use the new feature, so we'll go with that for now. Hopefully can act as inspiration/reminder for other tests. Not all debug info tests need to check for every DW_TAG or NULL child terminator, but perhaps they should (just to ensure they don't accidentally end up with tags nested inside other tags without the test failing, for example) llvm-svn: 213092 --- llvm/test/DebugInfo/cross-cu-inlining.ll | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/llvm/test/DebugInfo/cross-cu-inlining.ll b/llvm/test/DebugInfo/cross-cu-inlining.ll index 899558a..8a0e3c5 100644 --- a/llvm/test/DebugInfo/cross-cu-inlining.ll +++ b/llvm/test/DebugInfo/cross-cu-inlining.ll @@ -1,6 +1,6 @@ ; REQUIRES: object-emission -; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck %s +; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck -implicit-check-not=DW_TAG %s ; Build from source: ; $ clang++ a.cpp b.cpp -g -c -emit-llvm @@ -25,10 +25,8 @@ ; CHECK: DW_TAG_subprogram ; CHECK: DW_AT_type [DW_FORM_ref_addr] (0x00000000[[INT:.*]]) ; CHECK: DW_TAG_inlined_subroutine -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_abstract_origin {{.*}}[[ABS_FUNC:........]]) ; CHECK: DW_TAG_formal_parameter -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_abstract_origin {{.*}}[[ABS_VAR:........]]) ; Check the abstract definition is in the 'b.cpp' CU and doesn't contain any @@ -38,26 +36,20 @@ ; CHECK: 0x[[ABS_FUNC]]: DW_TAG_subprogram ; CHECK-NOT: DW_AT_low_pc ; CHECK: 0x[[ABS_VAR]]: DW_TAG_formal_parameter -; CHECK-NOT: DW_TAG ; CHECK-NOT: DW_AT_location ; CHECK: DW_AT_type [DW_FORM_ref4] {{.*}} {0x[[INT]]} ; CHECK-NOT: DW_AT_location ; CHECK: 0x[[INT]]: DW_TAG_base_type -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_name {{.*}} "int" ; Check the concrete out of line definition references the abstract and ; provides the address range and variable location ; CHECK: DW_TAG_subprogram -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_low_pc -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_abstract_origin {{.*}} {0x[[ABS_FUNC]]} ; CHECK: DW_TAG_formal_parameter -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_location -; CHECK-NOT: DW_TAG ; CHECK: DW_AT_abstract_origin {{.*}} {0x[[ABS_VAR]]} -- 2.7.4