On Sun, Sep 21, 2014 at 8:08 PM, Steve Kargl <s...@troutmask.apl.washington.edu> wrote: > On Sun, Sep 21, 2014 at 07:57:45PM -0700, Andrew Pinski wrote: >> On Sun, Sep 21, 2014 at 6:56 PM, Steve Kargl >> <s...@troutmask.apl.washington.edu> wrote: >> > + is a binary operator. 0x3ffe is a hexidecimal-constant according >> > to 6.6.4.1 in n1256.pdf. 63 is, of course, a decimal-constant. >> >> >> This is before tokens happen and during lexing of the program. >> e+64 is exponent-part see 6.4.4.2. > > 6.4.4.2 applies to floating point constant. > 6.4.4.1 is for integer constants.
Nope again, this time from bug 3885: Strange as it may seem, the behavior is correct, and mandated by the C Standard. 0x00E-0x00A is a single preprocessor token, of type pp-number, and it must become a single compiler token, but it can't. The gotcha is the `E-' sequence, that makes it seem like the exponent notation of floating-point constants. Looks like this is a common misunderstood part of C. Thanks, Andrew Pinski > > -- > Steve