On Wed, 11 Feb 2009, Janis Johnson wrote: > I'm rewriting function interpret_float_suffix in libcpp/expr.c to fix > suffixes in decimal float literal constants for c/33466. While I'm at > it I'm fixing suffixes for fixed-point literal constants. Currently for > fixed-point GCC accepts any ordering of the letters in the suffix. The > technical report (N1169) gives specific strings, not individual letters > that can be used in any order. That seems like something obvious to fix > but I thought I'd mention it in case they really should be accepted in > any order.
I believe you should follow the formal syntax, 6.4.4.2a (at least in N1275, the most recent version I know of, on page 16 of that document). This does not allow them in multiple orders. It uses long-suffix from the C99 syntax. > My question, though, is about the case of the letters in the suffixes. > N1169 says "note that the suffix is case insensitive"; should I take > that literally and allow any mix of cases (as GCC currently does), or > require that the same case be used within a particular suffix? The syntax allows a mix of cases. > GCC accepts ll or LL, but not lL or Ll, in fixed-point suffixes. These > are not in N1169; is there a later draft TR that includes them or are > they simply a GNU extension on top of the draft TR? I presume the extension is to add long-long-suffix somewhere in the syntax, which means ll or LL but not lL or Ll because those aren't in C99 which defines long-long-suffix. -- Joseph S. Myers jos...@codesourcery.com