================
@@ -833,9 +833,23 @@ StmtResult Parser::ParseCaseStatement(ParsedStmtContext
StmtCtx,
<< FixItHint::CreateReplacement(ColonLoc, ":");
} else {
SourceLocation ExpectedLoc = PP.getLocForEndOfToken(PrevTokLocation);
+ SourceLocation ExprLoc =
+ LHS.get() ? LHS.get()->getExprLoc() : SourceLocation();
+
+ if (ExpectedLoc.isInvalid() && ExprLoc.isMacroID()) {
+ ExpectedLoc = PP.getSourceManager().getSpellingLoc(ExprLoc);
+ }
+
Diag(ExpectedLoc, diag::err_expected_after)
<< "'case'" << tok::colon
<< FixItHint::CreateInsertion(ExpectedLoc, ":");
+
+ if (ExprLoc.isMacroID()) {
+ Diag(ExprLoc, diag::note_macro_expansion)
----------------
efriedma-quic wrote:
We usually let the diagnostic infrastructure generate this sort of note; trying
to write it out is likely to get it wrong.
https://github.com/llvm/llvm-project/pull/143460
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits