cor3ntin added inline comments.

================
Comment at: clang/lib/Parse/ParseExpr.cpp:3501-3503
+    } else if (!AllowEvaluatedString && tok::isStringLiteral(Tok.getKind())) {
+      Expr = ParseUnevaluatedStringLiteralExpression();
+    } else {
----------------
aaron.ballman wrote:
> cor3ntin wrote:
> > aaron.ballman wrote:
> > > I'm surprised we need special logic in `ParseExpressionList()` for 
> > > handling unevaluated string literals; I would have expected that to be 
> > > needed when parsing a string literal. Nothing changed in the grammar for 
> > > http://eel.is/c++draft/expr.post.general#nt:expression-list (or 
> > > initializer-list), so these changes seem wrong. Can you explain the 
> > > changes a bit more?
> > We use `ParseExpressionList` when parsing attribute arguments, and some 
> > attributes have unevaluate string as argument - I agree with you that I'd 
> > rather find a better solution for attributes, but I came up empty. There is 
> > no further reason for this change, and you are right it does not match the 
> > grammar.
> I was thinking we'd use a new kind of evaluation context for this. We'd enter 
> the evaluation context when we know we need to parse an expression that is an 
> unevaluated string literal which the string literal parser would pay 
> attention to. This would require knowing up-front when we want to parse an 
> unevaluated string literal, but we should have that information available to 
> us at parse time (I think).
After offline discussion, i think what we want to be doing is to have a

`ParseAtttributeArgumentList` function that is aware of whether the Nth 
argument is an unevaluated string - by means of modifying tablegen,
and doing the right parsing accordingly.
It would take care of all attributes automatically.
Alas that's a tad more involved.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105759/new/

https://reviews.llvm.org/D105759

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to