diff --git a/lib/TableGen/TGParser.cpp b/lib/TableGen/TGParser.cpp index 3fc2e53f208..f9486d4469d 100644 --- a/lib/TableGen/TGParser.cpp +++ b/lib/TableGen/TGParser.cpp @@ -2283,6 +2283,10 @@ void TGParser::ParseValueList(SmallVectorImpl &Result, Record *CurRec, while (Lex.getCode() == tgtok::comma) { Lex.Lex(); // Eat the comma + // ignore trailing comma for lists + if (Lex.getCode() == tgtok::r_square) + return; + if (ArgsRec && !EltTy) { ArrayRef TArgs = ArgsRec->getTemplateArgs(); if (ArgN >= TArgs.size()) { diff --git a/test/TableGen/ListArgs.td b/test/TableGen/ListArgs.td index 8714112d137..4d2713a1cab 100644 --- a/test/TableGen/ListArgs.td +++ b/test/TableGen/ListArgs.td @@ -10,3 +10,7 @@ class BBB> vals> : BB; def OneB : BBB<[[1,2,3]]>; def TwoB : BBB<[[1,2,3],[4,5,6]]>; + +def ThreeB: BBB<[[1,2,3], + [4,5,6], + ]>;