CreateIntCast takes an "isSigned" parameter. Pass "true" for it, rather than
authorDuncan Sands <baldrick@free.fr>
Mon, 16 Nov 2009 12:32:28 +0000 (12:32 +0000)
committerDuncan Sands <baldrick@free.fr>
Mon, 16 Nov 2009 12:32:28 +0000 (12:32 +0000)
a name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88908 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/SimplifyLibCalls.cpp

index 296f0c9ac5409e0dde94418e28e009fc592dbed1..611505ef363ae61202917fde845ee83068db2e0a 100644 (file)
@@ -259,6 +259,7 @@ Value *LibCallOptimization::EmitPutChar(Value *Char, IRBuilder<> &B) {
   CallInst *CI = B.CreateCall(PutChar,
                               B.CreateIntCast(Char,
                                              Type::getInt32Ty(*Context),
+                                              /*isSigned*/true,
                                              "chari"),
                               "putchar");
 
@@ -303,7 +304,8 @@ void LibCallOptimization::EmitFPutC(Value *Char, Value *File, IRBuilder<> &B) {
                               Type::getInt32Ty(*Context),
                               Type::getInt32Ty(*Context),
                                File->getType(), NULL);
-  Char = B.CreateIntCast(Char, Type::getInt32Ty(*Context), "chari");
+  Char = B.CreateIntCast(Char, Type::getInt32Ty(*Context), /*isSigned*/true,
+                         "chari");
   CallInst *CI = B.CreateCall2(F, Char, File, "fputc");
 
   if (const Function *Fn = dyn_cast<Function>(F->stripPointerCasts()))