ABataev added a comment. In D80925#2066728 <https://reviews.llvm.org/D80925#2066728>, @rjmccall wrote:
> Narrowly this seems to fix the immediate problem, but I feel like we're in > trouble if tentative parsing is changing the semantic context in ways that > persist. In particular, I'm concerned that we could end up tentatively > parsing an ODR use as part of an expression and then completely discarding > it, causing Sema to think that there's an ODR use later because it never sees > an L2R conversion (because the expression is not actually used). Probably > the most architectural thing would be for tentative expression parsing to > push a possibly-unevaluated context, and then when we claim an expression > annotation token we can do the retroactive work necessary to make it an > expression in the proper context. We already have most of the logic to > support that because of C99 `sizeof`, which is usually not evaluated but can > be in the narrow circumstance of a VLA. > > If we do decide to solve this more narrowly, then we should audit our use of > the tentative-parsing queries to make sure that we're pushing contexts > consistently, and we should leave comments in places like this to make sure > that maintainers understand the subtleties. So, you suggest to not create annot_primary_expr during tentative parsing and revert parsing completely, right? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80925/new/ https://reviews.llvm.org/D80925 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits