Will post a revised version soon.

================
Comment at: lib/Lex/CharSets.inc:379-381
@@ +378,5 @@
+
+// C99 6.4.2.1p3: The initial character [of an identifier] shall not be a
+// universal character name designating a digit.
+// C99 Annex D defines these characters as "Digits".
+static const UnicodeCharRange C99DisallowedInitialIDChars[] = {
----------------
Richard Smith wrote:
> How sure are you about this? It might also be referring to the term /digit/ 
> defined in 6.4.2.1/1 as 'one of 0 1 2 3 4 5 6 7 8 9', and that would be more 
> consistent with C11's rules, in which all of these characters may start an 
> identifier, and only combining characters are ruled out at the start of an 
> identifier.
> 
> By the other interpretation of this rule, it would be redundant given that 
> such UCNs would be ill-formed by 6.4.3/2, but I'm really not sure about the 
> intent here.
Interesting. I had assumed this interpretation simply because of the 
redundancy. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1518.htm seems to 
suggest that while my original interpretation is most likely, it's not 
well-specified.

================
Comment at: lib/Lex/Lexer.cpp:1524-1525
@@ -1554,1 +1523,4 @@
+
+template <size_t N>
+static bool isCharInSet(uint32_t c, const UnicodeCharRange (&Ranges)[N]) {
   unsigned LowPoint = 0;
----------------
Richard Smith wrote:
> Hmm, interesting, did you template this on the array size for convenience, or 
> in the hope that the compiler will unroll the loop? If the latter, did it 
> work? (And if so, did we manage to propagate the array into the unrolled 
> loop, or is it still being passed as a parameter?)
Convenience, and the whole thing will change because Joerg pointed out that 
it's worth validating the arrays.

I did check, and it looks like even at -O3 the loop isn't unrolled (at least 
not in IR). Did get inlined, though.


http://llvm-reviews.chandlerc.com/D327
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to