OSDN Git Service

Don't Parse Object Body as a Name
authorDavid Greene <greened@obbligato.org>
Wed, 19 Oct 2011 13:04:26 +0000 (13:04 +0000)
committerDavid Greene <greened@obbligato.org>
Wed, 19 Oct 2011 13:04:26 +0000 (13:04 +0000)
Stop parsing a value if we are in name parsing mode and we see a left
brace.  A left brace indicates the start of an object body when we are
parsing a name.

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

lib/TableGen/TGParser.cpp

index fdf88d8..828e775 100644 (file)
@@ -1330,6 +1330,10 @@ Init *TGParser::ParseValue(Record *CurRec, RecTy *ItemType, IDParseMode Mode) {
     switch (Lex.getCode()) {
     default: return Result;
     case tgtok::l_brace: {
+      if (Mode == ParseNameMode)
+        // This is the beginning of the object body.
+        return Result;
+
       SMLoc CurlyLoc = Lex.getLoc();
       Lex.Lex(); // eat the '{'
       std::vector<unsigned> Ranges = ParseRangeList();