llvm-6502/test/DebugInfo
David Blaikie a42211335a DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself.
Originally committed in r211723, reverted in r211724 due to failure
cases found and fixed (ArgumentPromotion: r211872, Inlining: r212065),
committed again in r212085 and reverted again in r212089 after fixing
some other cases, such as debug info subprogram lists not keeping track
of the function they represent (r212128) and then short-circuiting
things like LiveDebugVariables that build LexicalScopes for functions
that might not have full debug info.

And again, I believe the invariant actually holds for some reasonable
amount of code (but I'll keep an eye on the buildbots and see what
happens... ).

Original commit message:

PR20038: DebugInfo: Inlined call sites where the caller has debug info
but the call itself has no debug location.

This situation does bad things when inlined, so I've fixed Clang not to
produce inlinable call sites without locations when the caller has debug
info (in the one case where I could find that this occurred). This
updates the PR20038 test case to be what clang now produces, and readds
the assertion that had to be removed due to this bug.

I've also beefed up the debug info verifier to help diagnose these
issues in the future, and I hope to add checks to the inliner to just
assert-fail if it encounters this situation. If, in the future, we
decide we have to cope with this situation, the right thing to do is
probably to just remove all the DebugLocs from the inlined instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212205 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-02 18:32:05 +00:00
..
AArch64 Emit DWARF3 call frame information when DWARF3+ debug info is requested 2014-06-19 15:39:33 +00:00
ARM Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
COFF Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
Inputs [DWARF parser] Fix broken address ranges construction. 2014-06-12 23:58:49 +00:00
Mips Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
PowerPC Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
Sparc Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
SystemZ Emit DWARF3 call frame information when DWARF3+ debug info is requested 2014-06-19 15:39:33 +00:00
X86 Don't try to construct debug LexicalScopes hierarchy for functions that do not have top level debug information. 2014-07-02 18:31:35 +00:00
2009-10-16-Phi.ll
2009-11-03-InsertExtractValue.ll
2009-11-05-DeadGlobalVariable.ll Fix typos 2014-06-19 19:41:26 +00:00
2009-11-06-NamelessGlobalVariable.ll DebugInfo: Assert that a CU's subprogram list contains only subprograms. 2014-05-14 21:52:37 +00:00
2009-11-10-CurrentFn.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
2010-01-05-DbgScope.ll
2010-03-12-llc-crash.ll
2010-03-19-DbgDeclare.ll No need for those tests to go thru llvm-as and/or llvm-dis. 2014-05-27 22:03:28 +00:00
2010-03-24-MemberFn.ll Reland r200340 - 'Add line table debug info to COFF files when using a win32 triple' 2014-01-30 01:39:17 +00:00
2010-03-30-InvalidDbgInfoCrash.ll
2010-04-06-NestedFnDbgInfo.ll DebugInfo: Lazily attach definition attributes to definitions. 2014-05-27 18:37:43 +00:00
2010-04-19-FramePtr.ll Reland r200340 - 'Add line table debug info to COFF files when using a win32 triple' 2014-01-30 01:39:17 +00:00
2010-05-03-DisableFramePtr.ll
2010-05-03-OriginDIE.ll
2010-05-10-MultipleCU.ll Reland r200340 - 'Add line table debug info to COFF files when using a win32 triple' 2014-01-30 01:39:17 +00:00
2010-06-29-InlinedFnLocalVar.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
2010-07-19-Crash.ll DebugInfo: Assume the CU's Subprogram list only contains definitions. 2014-05-16 18:26:53 +00:00
2010-10-01-crash.ll
arm-relocs.test Add support for the R_ARM_ABS32 relocation. 2014-04-03 02:27:00 +00:00
array.ll Reland r200340 - 'Add line table debug info to COFF files when using a win32 triple' 2014-01-30 01:39:17 +00:00
bug_null_debuginfo.ll
constant-pointers.ll PR19767: DebugInfo emission of pointer constants. 2014-05-20 18:21:51 +00:00
cross-cu-inlining.ll DebugInfo: Following up to r209677, refactor local variable emission to delay the choice between emitting the definition attributes or using DW_AT_abstract_definition 2014-06-13 22:18:23 +00:00
cross-cu-linkonce.ll DebugInfo: Test linkonce-odr functions under LTO. 2014-05-26 06:44:52 +00:00
cu-line-tables.ll DebugInfo: Make gmlt debug info more gmlt-like by removing variables. 2014-05-12 21:33:03 +00:00
cu-range-hole.ll Reapply DW_AT_low/high_pc patch: 2014-03-20 19:16:16 +00:00
cu-ranges.ll Reapply DW_AT_low/high_pc patch: 2014-03-20 19:16:16 +00:00
dead-argument-order.ll DebugInfo: Following up to r209677, refactor local variable emission to delay the choice between emitting the definition attributes or using DW_AT_abstract_definition 2014-06-13 22:18:23 +00:00
debug-info-qualifiers.ll DebugInfo: Lazily construct subprogram definition DIEs. 2014-05-27 18:37:48 +00:00
debuginfofinder-multiple-cu.ll
debuglineinfo.test
dwarf-public-names.ll DebugInfo: Use the scope of the function declaration, if any, to name a function in DWARF pubnames 2014-06-06 22:29:05 +00:00
dwarfdump-debug-frame-simple.test
dwarfdump-debug-loc-simple.test
dwarfdump-dump-flags.test
dwarfdump-line-dwo.test llvm-dwarfdump: Support for debug_line.dwo section for file names for type units under fission. 2014-02-24 23:58:54 +00:00
dwarfdump-pubnames.test
dwarfdump-ranges.test Kill symbolization functionality in llvm-dwarfdump. We have llvm-symbolizer for that. 2014-05-19 18:45:32 +00:00
dwarfdump-type-units.test
dwarfdump-zlib.test Kill symbolization functionality in llvm-dwarfdump. We have llvm-symbolizer for that. 2014-05-19 18:45:32 +00:00
empty.ll DebugInfo: Add fission-related sections to COFF 2014-03-26 03:05:10 +00:00
enum.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
global.ll Move test so that it is skipped if the ARM target is not enabled. 2014-06-20 15:30:38 +00:00
incorrect-variable-debugloc.ll DebugInfo: Assert that DbgVariables have associated DIEs 2014-06-01 03:38:13 +00:00
inheritance.ll
inline-debug-info-multiret.ll
inline-debug-info.ll
inline-no-debug-info.ll Improve the test for inlining of __no_debug__ functions. 2014-06-11 08:46:45 +00:00
inline-scopes.ll DebugInfo: Fix inlining with #file directives a little harder 2014-05-25 18:11:35 +00:00
inlined-arguments.ll DebugInfo: Refactor some tests to allow DW_AT_name to not be the first attribute in a local variable. 2014-06-13 21:52:33 +00:00
inlined-vars.ll DwarfDebug: Avoid an extra map lookup while constructing abstract scope DIEs and reduce nesting/conditionals. 2014-05-12 18:23:35 +00:00
llvm-symbolizer-zlib.test Kill symbolization functionality in llvm-dwarfdump. We have llvm-symbolizer for that. 2014-05-19 18:45:32 +00:00
llvm-symbolizer.test [DWARF parser] Fix broken address ranges construction. 2014-06-12 23:58:49 +00:00
lto-comp-dir.ll Add comments from Eric's review of r204094. 2014-03-20 17:05:45 +00:00
member-order.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
member-pointers.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
missing-abstract-variable.ll XFAIL: test/DebugInfo/missing-abstract-variable.ll on s390x as well 2014-06-05 14:20:54 +00:00
namespace_function_definition.ll DebugInfo: Lazily attach definition attributes to definitions. 2014-05-27 18:37:43 +00:00
namespace_inline_function_definition.ll DebugInfo: Put concrete definitions referencing abstract definitions in the same scope as the abstract definition. 2014-05-23 20:25:15 +00:00
namespace.ll DebugInfo: Lazily construct subprogram definition DIEs. 2014-05-27 18:37:48 +00:00
nodebug.ll Don't try to construct debug LexicalScopes hierarchy for functions that do not have top level debug information. 2014-07-02 18:31:35 +00:00
PR20038.ll DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself. 2014-07-02 18:32:05 +00:00
restrict.ll PR13337: Omit DW_TAG_restrict_type when compiling for DWARF2 2014-04-12 05:35:59 +00:00
sugared-constants.ll DebugInfo: Handle emitting constants of C++ unicode character type. 2014-05-16 21:53:09 +00:00
template-recursive-void.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
tu-composite.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
tu-member-pointer.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00
two-cus-from-same-file.ll DebugInfo: Sure up subprogram variable list handling with more assertions and fewer conditionals. 2014-05-14 21:52:46 +00:00
typedef.ll DebugInfo: Correct the attribute type kind. 2014-05-01 18:31:21 +00:00
unconditional-branch.ll X86MCAsmInfoGNUCOFF: Set PointerSize as 8 for targeting x64. It caused DW_LNE_set_address was misemitted on x64. 2014-04-08 15:28:50 +00:00
varargs.ll DebugInfo: Lazily construct subprogram definition DIEs. 2014-05-27 18:37:48 +00:00
version.ll DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0} 2014-02-04 01:23:52 +00:00