diff --git a/cbackend.cpp b/cbackend.cpp index 2eb853e3..5fe87264 100644 --- a/cbackend.cpp +++ b/cbackend.cpp @@ -16,6 +16,11 @@ #warning "The C++ backend isn't supported when building with LLVM 2.9" #else +#include +#ifndef PRIx64 +#define PRIx64 "llx" +#endif + #include "llvm/CallingConv.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" @@ -1280,7 +1285,7 @@ void CWriter::printConstant(Constant *CPV, bool Static) { char Buffer[100]; uint64_t ll = DoubleToBits(V); - sprintf(Buffer, "0x%llx", static_cast(ll)); + sprintf(Buffer, "0x%"PRIx64, static_cast(ll)); std::string Num(&Buffer[0], &Buffer[6]); unsigned long Val = strtoul(Num.c_str(), 0, 16); diff --git a/expr.cpp b/expr.cpp index 1bcfa70d..f94245d5 100644 --- a/expr.cpp +++ b/expr.cpp @@ -43,6 +43,13 @@ #include "module.h" #include "util.h" #include "llvmutil.h" +#include +#ifndef PRId64 +#define PRId64 "lld" +#endif +#ifndef PRIu64 +#define PRIu64 "llu" +#endif #include #include @@ -4540,18 +4547,10 @@ ConstExpr::Print() const { printf("%f", floatVal[i]); break; case AtomicType::TYPE_INT64: -#ifdef ISPC_IS_LINUX - printf("%ld", int64Val[i]); -#else - printf("%lld", int64Val[i]); -#endif + printf("%"PRId64, int64Val[i]); break; case AtomicType::TYPE_UINT64: -#ifdef ISPC_IS_LINUX - printf("%lu", uint64Val[i]); -#else - printf("%llu", uint64Val[i]); -#endif + printf("%"PRIu64, uint64Val[i]); break; case AtomicType::TYPE_DOUBLE: printf("%f", doubleVal[i]);