shafik added inline comments.

================
Comment at: clang/test/AST/Interp/arrays.cpp:128
+
+  static_assert("foobar"[2] == 'o', "");
+
----------------
Also `2["foobar"]`


================
Comment at: clang/test/AST/Interp/arrays.cpp:135
+  static_assert(u32[1] == U'b', "");
+};
+
----------------
tbaeder wrote:
> aaron.ballman wrote:
> > I think you need a more coverage for character literals. Some test cases 
> > that are interesting: multichar literals (`'abcd'`), character literals 
> > with UCNs (`'\uFFFF'`), character literals with numeric escapes (`'\xFF'`). 
> > I'm especially interested in seeing whether we handle integer promotions 
> > properly, especially when promoting to `unsigned int`.
> I added two more test cases but I'm generally not that familiar with 
> character  literal edge cases and integer promotion, so if you have concrete 
> test cases in mind, that would be great :)
We can find GNU documentation of multi-char literals here: 
https://gcc.gnu.org/onlinedocs/cpp/Implementation-defined-behavior.html#Implementation-defined-behavior
 and I believe we follow the same scheme. 

There are some weird cases like `'\8'` which compilers seem to treat 
consistently but generate a diagnostic for.


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

https://reviews.llvm.org/D135366

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

Reply via email to