//
// The LLVM Compiler Infrastructure
//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
/// RangePiece ::= INTVAL '-' INTVAL
/// RangePiece ::= INTVAL INTVAL
bool TGParser::ParseRangePiece(std::vector<unsigned> &Ranges) {
- assert(Lex.getCode() == tgtok::IntVal && "Invalid range");
- int Start = Lex.getCurIntVal();
- int End;
+ if (Lex.getCode() != tgtok::IntVal) {
+ TokError("expected integer or bitrange");
+ return true;
+ }
+ int64_t Start = Lex.getCurIntVal();
+ int64_t End;
if (Start < 0)
return TokError("invalid range, cannot be negative");
TokError("expected integer in bits<n> type");
return 0;
}
- unsigned Val = Lex.getCurIntVal();
+ uint64_t Val = Lex.getCurIntVal();
if (Lex.Lex() != tgtok::greater) { // Eat count.
TokError("expected '>' at end of bits<n> type");
return 0;
}
case tgtok::l_paren: { // Value ::= '(' IDValue DagArgList ')'
Lex.Lex(); // eat the '('
+ if (Lex.getCode() != tgtok::Id) {
+ TokError("expected identifier in dag init");
+ return 0;
+ }
+
Init *Operator = ParseIDValue(CurRec);
if (Operator == 0) return 0;