llvm-6502/include/llvm
Bill Wendling d751c64a67 If we have a function with an unreachable statement such that the ending debug
information is in an unreachable block, then it's possible that the high/low pc
values won't be set for the dwarf information. E.g., this function:

void abort(void) __attribute__((__noreturn__));
void dead_beef(void) __attribute__ ((noreturn));

int *b;

void dead_beef(void) {
  *b=0xdeadbeef;
  abort();
}

has a call to "@llvm.dbg.region.end" only in the unreachable block:

define void @dead_beef() noreturn nounwind  {
entry:
	call void @llvm.dbg.func.start(...)
	call void @llvm.dbg.stoppoint(...)
...
	call void @abort( ) noreturn nounwind 
	unreachable

return:		; No predecessors!
	call void @llvm.dbg.stoppoint(...)
	call void @llvm.dbg.region.end(...)
	ret void
}

The dwarf information emitted is something like:

0x00000084:     TAG_subprogram [5]  
                 AT_name( "dead_beef" )
                 AT_external( 0x01 )
                 AT_prototyped( 0x01 )
                 AT_decl_file( 0x01 )
                 AT_decl_line( 0x08 )

Note that this is *not* the best fix for this problem, but a band-aid for an
gaping wound. This code needs to be changed when we revamp our debugging
information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56628 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26 00:28:12 +00:00
..
ADT Add bound checks in SmallVector 2008-09-22 10:06:26 +00:00
Analysis Reapply 55859. This doesn't change anything as 2008-09-08 11:05:51 +00:00
Assembly we should use 'class' for non-pod types instead of 'struct' to 2008-08-24 18:38:56 +00:00
Bitcode Large mechanical patch. 2008-09-25 21:00:45 +00:00
CodeGen If we have a function with an unreachable statement such that the ending debug 2008-09-26 00:28:12 +00:00
CompilerDriver Remove silly semicolon. 2008-09-22 23:28:18 +00:00
Config Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
Debugger Fix more -Wshorten-64-to-32 warnings. 2008-05-05 18:30:58 +00:00
ExecutionEngine Add DisableGVCompilation which forces the JIT to assert when it tries to allocate space for a GlobalVariable. 2008-09-24 16:25:55 +00:00
Support Large mechanical patch. 2008-09-25 21:00:45 +00:00
System Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable. 2008-09-18 07:54:21 +00:00
Target Reapply 56585:56589 with proper fix for some gcc versions 2008-09-25 21:00:33 +00:00
Transforms Remove the MarkModRef pass (use AddReadAttrs instead). 2008-09-19 08:23:44 +00:00
AbstractTypeUser.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
Argument.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Attributes.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
AutoUpgrade.h Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
BasicBlock.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
CallGraphSCCPass.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CallingConv.h Tidy a doxygen comment. 2008-07-16 15:59:56 +00:00
Constant.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
Constants.h Prevent warning about conversion from 64-bit to 32-bit by (yuck) casting... 2008-09-19 18:34:40 +00:00
DerivedTypes.h Remove unused parameter. Some clients might use -Werror when compiling and 2008-06-05 07:24:08 +00:00
Function.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
GlobalAlias.h Make safer variant of alias resolution routine to be default 2008-09-09 20:05:04 +00:00
GlobalValue.h Add GlobalValue::{removeFromParent,eraseFromParent} 2008-08-29 07:30:15 +00:00
GlobalVariable.h Add GlobalValue::{removeFromParent,eraseFromParent} 2008-08-29 07:30:15 +00:00
InlineAsm.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
InstrTypes.h Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments 2008-09-09 01:02:47 +00:00
Instruction.def Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
Instruction.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
Instructions.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
IntrinsicInst.h Split the SelectionDAG-building code, including the FunctionLoweringInfo 2008-09-03 16:12:24 +00:00
Intrinsics.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Intrinsics.td Reapply 55899: First draft of EH support on x86/64-linux 2008-09-08 21:12:47 +00:00
IntrinsicsARM.td remove attribution from a variety of miscellaneous files. 2007-12-29 22:59:10 +00:00
IntrinsicsCellSPU.td Final de-tabification. 2008-02-27 06:33:05 +00:00
IntrinsicsPowerPC.td Implement __sync_synchronize on ppc32. Patch by Gary Benson. 2008-08-22 17:20:54 +00:00
IntrinsicsX86.td SSE codegen for vsetcc nodes 2008-07-17 16:51:19 +00:00
LinkAllPasses.h Remove the MarkModRef pass (use AddReadAttrs instead). 2008-09-19 08:23:44 +00:00
LinkAllVMCore.h prune unneeded #includes 2008-04-01 04:00:45 +00:00
Linker.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
Module.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
ModuleProvider.h Remove warnings about unused parameters and shadowed variables. 2008-05-19 20:15:12 +00:00
OperandTraits.h 80col 2008-07-05 22:41:37 +00:00
Pass.h Add dom info verifier. 2008-07-01 17:44:24 +00:00
PassAnalysisSupport.h Speed up the passmgr by avoiding heap thrashing on vectors. 2008-08-08 05:33:04 +00:00
PassManager.h allow updating the MPM, so that you can use one FunctionPAssManager with 2008-06-26 22:26:45 +00:00
PassManagers.h Use SmallVector instead of std::vector 2008-08-12 15:44:31 +00:00
PassSupport.h Correct a comment. 2008-06-24 17:46:48 +00:00
SymbolTableListTraits.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.h remove dead method. 2008-08-23 22:43:21 +00:00
TypeSymbolTable.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
Use.h backing out my last commit, it was not intended to go on the trunk 2008-09-19 15:13:20 +00:00
User.h Move some documentation from the header file into ProgrammersManual. About to improve. 2008-06-16 21:06:12 +00:00
Value.h Make pointer parameter const for isUsedInBasicBlock. 2008-09-25 22:42:01 +00:00
ValueSymbolTable.h implement some fixme's by making "autorenaming" in the value symbol table not 2008-06-27 21:26:26 +00:00