Index: include/llvm/MC/MCParser/MCTargetAsmParser.h =================================================================== --- include/llvm/MC/MCParser/MCTargetAsmParser.h +++ include/llvm/MC/MCParser/MCTargetAsmParser.h @@ -66,11 +66,11 @@ AsmRewriteKind Kind; SMLoc Loc; unsigned Len; - unsigned Val; + int Val; StringRef Label; public: - AsmRewrite(AsmRewriteKind kind, SMLoc loc, unsigned len = 0, unsigned val = 0) + AsmRewrite(AsmRewriteKind kind, SMLoc loc, unsigned len = 0, int val = 0) : Kind(kind), Loc(loc), Len(len), Val(val) {} AsmRewrite(AsmRewriteKind kind, SMLoc loc, unsigned len, StringRef label) : Kind(kind), Loc(loc), Len(len), Val(0), Label(label) {} Index: lib/Target/X86/AsmParser/X86AsmParser.cpp =================================================================== --- lib/Target/X86/AsmParser/X86AsmParser.cpp +++ lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -1962,11 +1962,6 @@ return X86Operand::CreateImm(ImmExpr, Start, End); } - // Only positive immediates are valid. - if (Imm < 0) - return ErrorOperand(Start, "expected a positive immediate displacement " - "before bracketed expr."); - return ParseIntelBracExpression(/*SegReg=*/0, Start, Imm, isSymbol, Size); }