cor3ntin added inline comments.

================
Comment at: clang/lib/Lex/Lexer.cpp:3379
 
-  if (LooseMatch)
+  if (LooseMatch && Diagnose)
     Res = LooseMatch->CodePoint;
----------------
aaron.ballman wrote:
> Why do we only want to do this if we're diagnosing?
The scenario we want to avoid:

There is a tentative parse of a token,  no diagnostic is emitted.
The token gets cached and contains the loose match.
Then that cached token gets reused, and because it is well formed, we never get 
to emit a diagnostic for a loose match.
Only returning a Loose Match when a diagnostic ensure we always emit the diag 
once
Note that previously we would always emit a diag, but doing so caused the diag 
to be emitted twice for macros (once when parsing the directive and once more 
when substituting.


================
Comment at: clang/test/Preprocessor/ucn-pp-identifier.c:132-134
-#define CONCAT(A, B) A##B
-int CONCAT(\N{GREEK, CAPITALLETTERALPHA}); // expected-error{{expected}} \
-                                           // expected-warning {{incomplete 
delimited universal character name}}
----------------
aaron.ballman wrote:
> Why did this test get removed?
It doesn't test anything anymore, as the comma is part of the escape sequence 
now
Thinking about it more, we can do a similar test over multiple lines


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D138861

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

Reply via email to