From: Jakob Stoklund Olesen Date: Thu, 16 Jun 2011 02:55:56 +0000 (+0000) Subject: Make sure to pass an unsigned to a printf format that is always %u. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0cc0929efcb5a137c351cd7e2fa70b0e2e97f313;p=oota-llvm.git Make sure to pass an unsigned to a printf format that is always %u. This should unbreak the native ARM testers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133141 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/SetTheory.cpp b/utils/TableGen/SetTheory.cpp index ade18255767..bee6763fb05 100644 --- a/utils/TableGen/SetTheory.cpp +++ b/utils/TableGen/SetTheory.cpp @@ -155,10 +155,15 @@ struct SequenceOp : public SetTheory::Operator { From = II->getValue(); else throw "From must be an integer: " + Expr->getAsString(); + if (From < 0 || From >= UINT_MAX) + throw "From out of range"; + if (IntInit *II = dynamic_cast(Expr->arg_begin()[2])) To = II->getValue(); else throw "From must be an integer: " + Expr->getAsString(); + if (To < 0 || To >= UINT_MAX) + throw "To out of range"; RecordKeeper &Records = dynamic_cast(*Expr->getOperator()).getDef()->getRecords(); @@ -167,7 +172,7 @@ struct SequenceOp : public SetTheory::Operator { for (To += Step; From != To; From += Step) { std::string Name; raw_string_ostream OS(Name); - OS << format(Format.c_str(), From); + OS << format(Format.c_str(), unsigned(From)); Record *Rec = Records.getDef(OS.str()); if (!Rec) throw "No def named '" + Name + "': " + Expr->getAsString();