summaryrefslogtreecommitdiff
path: root/dragonegg
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-02-11 02:45:34 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-02-11 02:45:34 +0000
commit28abc1a82da66c8fdd77ceb8f3119f240c1762f1 (patch)
tree7d08bc6650b32ccc5074615cf3315a74032e0369 /dragonegg
parent40f0f9480fb9b415d1f1858f5d54441b15d9d40b (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.cpp8
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);