Only do the %ld -> %lld promotion when running a 64 bit bytecode on a 32 bit host
authorChris Lattner <sabre@nondot.org>
Fri, 25 Apr 2003 18:28:44 +0000 (18:28 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 25 Apr 2003 18:28:44 +0000 (18:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5942 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

index f8e1288f1db1f10346d7ab5cfbb5c21ae95cba34..aa900ea3b434b9413ca2cad280665d050f468163 100644 (file)
@@ -377,7 +377,8 @@ GenericValue lle_X_sprintf(FunctionType *M, const vector<GenericValue> &Args) {
       case 'u': case 'o':
       case 'x': case 'X':
         if (HowLong >= 1) {
-          if (HowLong == 1) {
+          if (HowLong == 1 && TheInterpreter->getModule().has64BitPointers() &&
+              sizeof(long) < sizeof(long long)) {
             // Make sure we use %lld with a 64 bit argument because we might be
             // compiling LLI on a 32 bit compiler.
             unsigned Size = strlen(FmtBuf);