llvm-6502/test/Transforms/SimplifyCFG
Chris Lattner c7d7e0cbe0 make simplifycfg insert an llvm.trap before the 'unreachable' it introduces
when it detects undefined behavior.  llvm.trap generally codegens into some
thing really small (e.g. a 2 byte ud2 instruction on x86) and debugging this
sort of thing is "nontrivial".  For example, we now compile:

void foo() { *(int*)0 = 42; }

into:

_foo:
	pushl	%ebp
	movl	%esp, %ebp
	ud2

Some may even claim that this is a security hole, though that seems dubious
to me.  This addresses rdar://7958343 - Optimizing away null dereference 
potentially allows arbitrary code execution


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103356 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-08 22:15:59 +00:00
..
2002-05-05-EmptyBlockMerge.ll
2002-05-21-PHIElimination.ll
2002-06-24-PHINode.ll
2002-09-24-PHIAssertion.ll
2003-03-07-DominateProblem.ll
2003-08-05-InvokeCrash.ll
2003-08-05-MishandleInvoke.ll
2003-08-17-BranchFold.ll
2003-08-17-BranchFoldOrdering.ll
2003-08-17-FoldSwitch-dbg.ll
2003-08-17-FoldSwitch.ll
2004-12-10-SimplifyCFGCrash.ll
2005-06-16-PHICrash.ll
2005-08-01-PHIUpdateFail.ll
2005-08-03-PHIFactorCrash.ll
2005-10-02-InvokeSimplify.ll
2005-12-03-IncorrectPHIFold.ll
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll
2006-10-19-UncondDiv.ll
2006-10-29-InvokeCrash.ll
2006-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll
2008-04-23-MergeMultipleResultRet.ll
2008-04-27-MultipleReturnCrash.ll
2008-05-16-PHIBlockMerge.ll
2008-07-13-InfLoopMiscompile.ll
2008-09-08-MultiplePred.ll
2008-09-17-SpeculativeHoist.ll
2008-10-03-SpeculativelyExecuteBeforePHI.ll
2008-12-06-SingleEntryPhi.ll
2008-12-16-DCECond.ll
2009-01-18-PHIPropCrash.ll
2009-01-19-UnconditionalTrappingConstantExpr.ll
2009-03-05-Speculative-Hoist-Dbg.ll
2009-05-12-externweak.ll
2009-06-15-InvokeCrash.ll
2010-03-30-InvokeCrash.ll
basictest.ll
branch_fold_dbg.ll
branch-branch-dbginfo.ll
branch-cond-merge.ll
branch-cond-prop.ll
branch-fold-test.ll
branch-fold.ll
branch-phi-thread.ll
BrUnwind.ll
dbginfo.ll
DeadSetCC.ll
dg.exp
duplicate-phis.ll
EqualPHIEdgeBlockMerge.ll
hoist-common-code.dbg.ll
hoist-common-code.ll
HoistCode.ll
invoke_unwind.ll
iterative-simplify.ll
MagicPointer.ll
noreturn-call.ll
PhiBlockMerge2.ll
PhiBlockMerge.ll
PhiEliminate2.ll
PhiEliminate.ll
PhiNoEliminate.ll
return-merge.ll
SpeculativeExec.ll
switch_create.ll
switch_formation.dbg.ll
switch_formation.ll
switch_switch_fold_dbginfo.ll
switch_switch_fold.ll
switch_thread.ll
switch-simplify-crash.ll
trapping-load-unreachable.ll
two-entry-phi-return.dbg.ll
two-entry-phi-return.ll
UncondBranchToReturn.ll
UnreachableEliminate.ll