TableGen/FixedLenDecoderEmitter.cpp: Fix a potential mask overflow in fieldFromInstru...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 26 Dec 2012 06:43:14 +0000 (06:43 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 26 Dec 2012 06:43:14 +0000 (06:43 +0000)
Reported by Yang Yongyong, thanks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171101 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/FixedLenDecoderEmitter.cpp

index b2dc878880908087bf0611b61af190f93381254f..0c3017f38920dd5e2828c478a3ac6ef22a5810cd 100644 (file)
@@ -1866,7 +1866,7 @@ static void emitFieldFromInstruction(formatted_raw_ostream &OS) {
      << "    if (numBits == sizeof(InsnType)*8)\n"
      << "      fieldMask = (InsnType)(-1LL);\n"
      << "    else\n"
-     << "      fieldMask = ((1 << numBits) - 1) << startBit;\n"
+     << "      fieldMask = (((InsnType)1 << numBits) - 1) << startBit;\n"
      << "    return (insn & fieldMask) >> startBit;\n"
      << "}\n\n";
 }