diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-02-11 02:45:34 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-02-11 02:45:34 +0000 |
commit | 28abc1a82da66c8fdd77ceb8f3119f240c1762f1 (patch) | |
tree | 7d08bc6650b32ccc5074615cf3315a74032e0369 /dragonegg | |
parent | 40f0f9480fb9b415d1f1858f5d54441b15d9d40b (diff) |
Bug 18358 - Update for objectsize intrinsic argument change.
The pointer type needs to be included in the mangling.
Diffstat (limited to 'dragonegg')
-rw-r--r-- | dragonegg/src/Convert.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/dragonegg/src/Convert.cpp b/dragonegg/src/Convert.cpp index 5a5c721d611..210c37fb994 100644 --- a/dragonegg/src/Convert.cpp +++ b/dragonegg/src/Convert.cpp @@ -4423,12 +4423,16 @@ bool TreeToLLVM::EmitBuiltinCall(gimple stmt, tree fndecl, Value *NewTy = ConstantInt::get(Tmp->getType(), val); Value *Args[] = { EmitMemory(gimple_call_arg(stmt, 0)), NewTy }; + Type *Int8PtrTy = Type::getInt8PtrTy(Context); // Grab the current return type. - Type *Ty = ConvertType(gimple_call_return_type(stmt)); + Type *Ty[2] = { + ConvertType(gimple_call_return_type(stmt)), + Int8PtrTy + }; // Manually coerce the arg to the correct pointer type. - Args[0] = Builder.CreateBitCast(Args[0], Type::getInt8PtrTy(Context)); + Args[0] = Builder.CreateBitCast(Args[0], Int8PtrTy); Args[1] = Builder.CreateIntCast(Args[1], Type::getInt1Ty(Context), /*isSigned*/ false); |