|
@@ -1293,10 +1293,11 @@ static llvm::Function *createCatchWrappedInvokeFunction(
|
|
|
// (_Unwind_Exception instance). This member tells us whether or not
|
|
|
// the exception is foreign.
|
|
|
llvm::Value *unwindExceptionClass =
|
|
|
- builder.CreateLoad(builder.CreateStructGEP(
|
|
|
- builder.CreatePointerCast(unwindException,
|
|
|
- ourUnwindExceptionType->getPointerTo()),
|
|
|
- 0));
|
|
|
+ builder.CreateLoad(builder.CreateStructGEP(
|
|
|
+ ourUnwindExceptionType,
|
|
|
+ builder.CreatePointerCast(unwindException,
|
|
|
+ ourUnwindExceptionType->getPointerTo()),
|
|
|
+ 0));
|
|
|
|
|
|
// Branch to the externalExceptionBlock if the exception is foreign or
|
|
|
// to a catch router if not. Either way the finally block will be run.
|
|
@@ -1336,10 +1337,10 @@ static llvm::Function *createCatchWrappedInvokeFunction(
|
|
|
//
|
|
|
// Note: Index is not relative to pointer but instead to structure
|
|
|
// unlike a true getelementptr (GEP) instruction
|
|
|
- typeInfoThrown = builder.CreateStructGEP(typeInfoThrown, 0);
|
|
|
+ typeInfoThrown = builder.CreateStructGEP(ourExceptionType, typeInfoThrown, 0);
|
|
|
|
|
|
llvm::Value *typeInfoThrownType =
|
|
|
- builder.CreateStructGEP(typeInfoThrown, 0);
|
|
|
+ builder.CreateStructGEP(builder.getInt8PtrTy(), typeInfoThrown, 0);
|
|
|
|
|
|
generateIntegerPrint(context,
|
|
|
module,
|