From e9eafe8abb2e303c8185d83780183c342e9ca08f Mon Sep 17 00:00:00 2001 From: Mark Seaborn Date: Wed, 28 Aug 2013 17:04:44 -0700 Subject: PNaCl bitcode: Remove support for >64-bit int constants (CST_CODE_WIDE_INTEGER) The PNaCl ABI verifier does not allow large integer constants. Remove an argument from EmitAPInt() which is now no longer used. Also make error reporting for unknown Constants more verbose. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3590 TEST=PNaCl toolchain trybots Review URL: https://codereview.chromium.org/22903044 --- lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp') diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp index 028e750d92..e0dfdc1889 100644 --- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp +++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp @@ -832,8 +832,13 @@ bool NaClBitcodeReader::ParseConstants() { Value *V = 0; unsigned BitCode = Stream.readRecord(Entry.ID, Record); switch (BitCode) { - default: - return Error("Unknown Constant"); + default: { + std::string Message; + raw_string_ostream StrM(Message); + StrM << "Invalid Constant code: " << BitCode; + StrM.flush(); + return Error(Message); + } case naclbitc::CST_CODE_UNDEF: // UNDEF V = UndefValue::get(CurTy); break; @@ -852,16 +857,6 @@ bool NaClBitcodeReader::ParseConstants() { return Error("Invalid CST_INTEGER record"); V = ConstantInt::get(CurTy, NaClDecodeSignRotatedValue(Record[0])); break; - case naclbitc::CST_CODE_WIDE_INTEGER: {// WIDE_INTEGER: [n x intval] - if (!CurTy->isIntegerTy() || Record.empty()) - return Error("Invalid WIDE_INTEGER record"); - - APInt VInt = ReadWideAPInt(Record, - cast(CurTy)->getBitWidth()); - V = ConstantInt::get(Context, VInt); - - break; - } case naclbitc::CST_CODE_FLOAT: { // FLOAT: [fpval] if (Record.empty()) return Error("Invalid FLOAT record"); -- cgit v1.2.3-18-g5258