[PATCH] D94412: [TableGen] Improve error message for semicolon after braced body
Paul C. Anagnostopoulos via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 11 15:14:02 PST 2021
Paul-C-Anagnostopoulos updated this revision to Diff 315949.
Paul-C-Anagnostopoulos added a comment.
I incorporated Craig's suggestions.
I will add a new test on Tuesday.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D94412/new/
https://reviews.llvm.org/D94412
Files:
llvm/lib/TableGen/TGParser.cpp
Index: llvm/lib/TableGen/TGParser.cpp
===================================================================
--- llvm/lib/TableGen/TGParser.cpp
+++ llvm/lib/TableGen/TGParser.cpp
@@ -2836,7 +2836,7 @@
return false;
if (!consume(tgtok::l_brace))
- return TokError("Expected ';' or '{' to start body");
+ return TokError("Expected '{' to start body or ';' for declaration only");
// An object body introduces a new scope for local variables.
TGLocalVarScope *BodyScope = PushLocalScope();
@@ -2849,6 +2849,14 @@
// Eat the '}'.
Lex.Lex();
+
+ // If we have a semicolon, print a gentle error.
+ SMLoc SemiLoc = Lex.getLoc();
+ if (consume(tgtok::semi)) {
+ PrintError(SemiLoc, "A class or def body should not end with a semicolon");
+ PrintNote("Semicolon ignored; remove to eliminate this error");
+ }
+
return false;
}
@@ -3432,6 +3440,13 @@
}
Lex.Lex(); // eat the '}'.
+ // If we have a semicolon, print a gentle error.
+ SMLoc SemiLoc = Lex.getLoc();
+ if (consume(tgtok::semi)) {
+ PrintError(SemiLoc, "A multiclass body should not end with a semicolon");
+ PrintNote("Semicolon ignored; remove to eliminate this error");
+ }
+
PopLocalScope(MulticlassScope);
}
@@ -3623,7 +3638,7 @@
if (Lex.getCode() == tgtok::Eof)
return false;
- return TokError("Unexpected input at top level");
+ return TokError("Unexpected token at top level");
}
// Check an assertion: Obtain the condition value and be sure it is true.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94412.315949.patch
Type: text/x-patch
Size: 1528 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210111/6a22e8b6/attachment.bin>
More information about the llvm-commits
mailing list