mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
a5d628103d
When CodeExtractor outlines values which are used by the original function, it must store those values in some in-out parameter. This store instruction must not be inserted in between a PHI and an EH pad instruction, as that results in invalid IR. This fixes the following verifier failure seen while outlining within ObjC methods with live exit values: The unwind destination does not have an exception handling instruction! %call35 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %exn.adjusted, i8* %1) to label %invoke.cont34 unwind label %lpad33, !dbg !4183 The unwind destination does not have an exception handling instruction! invoke void @objc_exception_throw(i8* %call35) #12 to label %invoke.cont36 unwind label %lpad33, !dbg !4184 LandingPadInst not the first non-PHI instruction in the block. %3 = landingpad { i8*, i32 } catch i8* null, !dbg !1411 rdar://46540815 llvm-svn: 348562 |
||
---|---|---|
.. | ||
ASanStackFrameLayoutTest.cpp | ||
BasicBlockUtilsTest.cpp | ||
CloningTest.cpp | ||
CMakeLists.txt | ||
CodeExtractorTest.cpp | ||
FunctionComparatorTest.cpp | ||
IntegerDivisionTest.cpp | ||
LocalTest.cpp | ||
SSAUpdaterBulkTest.cpp | ||
UnrollLoopTest.cpp | ||
ValueMapperTest.cpp |