https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63337
Bug ID: 63337
Summary: Hexadecimal exponent: improvements to error message
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dmalcolm at gcc dot gnu.org
As discussed in the thread here:
https://gcc.gnu.org/ml/gcc/2014-09/msg00282.html
if the user mistakenly tries to use the "e" suffix for a exponent marker with a
hexadecimal constant, the warning could be improved.
$ cat /tmp/foo.c
float f = 0x3ffe+63;
$ gcc/cc1 /tmp/foo.c
/tmp/foo.c:1:11: error: invalid suffix "+63" on integer constant
float f = 0x3ffe+63;
^
A better warning might be something like:
/tmp/foo.c:1:11: error: invalid suffix "+63" on integer constant
float f = 0x3ffe+63;
^
/tmp/foo.c:1:11: hint: if you meant for "e" to be an exponent, use "p" as an
exponent suffix for hexadecimal constants:
float f = 0x3ffe+63;
^
float f = 0x3ffp+63;
^
or somesuch; maybe even just:
/tmp/foo.c:1:11: error: use "p" rather than "e" for exponents for hexadecimal
constants
float f = 0x3ffe+63;
^
(how far can we go down the road of actually outputting a patch?)