From 2e9c92a3fa82e44d9c6af871e61ff7f1a8e51732 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Sun, 15 Dec 2013 20:08:54 -0800 Subject: do not try to sign boolean constants --- lib/Target/CppBackend/CPPBackend.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/Target/CppBackend/CPPBackend.cpp') diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index d5903a38d0..9f967977f5 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -1474,6 +1474,7 @@ std::string CppWriter::getConstant(const Constant* CV, AsmCast sign) { //if (S.find('.') == S.npos) { TODO: do this when necessary, but it is necessary even for 0.0001 return S; } else if (const ConstantInt *CI = dyn_cast(CV)) { + if (sign == ASM_SIGNED && CI->getValue().getBitWidth() == 1) sign = ASM_UNSIGNED; // booleans cannot be signed in a meaningful way return CI->getValue().toString(10, sign != ASM_UNSIGNED); } else if (isa(CV)) { return CV->getType()->isIntegerTy() ? "0" : "+0"; // XXX fround, refactor this -- cgit v1.2.3-70-g09d2