aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-lex.c
diff options
context:
space:
mode:
authorJanis Johnson <janis187@us.ibm.com>2009-04-01 17:31:26 +0000
committerJanis Johnson <janis@gcc.gnu.org>2009-04-01 17:31:26 +0000
commit839a3b8ab591c78acfcbc99842cda631d2a3b829 (patch)
tree6d2eb69c07acf9dfdd9f7f3af93d923a035bc1f3 /gcc/c-lex.c
parent667e8acbceb7f87159d098dc7d1fa8a7ddaebb17 (diff)
downloadgcc-839a3b8ab591c78acfcbc99842cda631d2a3b829.zip
gcc-839a3b8ab591c78acfcbc99842cda631d2a3b829.tar.gz
gcc-839a3b8ab591c78acfcbc99842cda631d2a3b829.tar.bz2
re PR target/39027 (double floating point suffix of 'd' and 'D' not accepted)
gcc/ PR c/29027 * c-lex.c (interpret_float): Default (no suffix) is double. libcpp/ PR c/29027 * include/cpplib.h (CPP_N_DEFAULT): Define. * expr.c (interpret_float_suffix): Recognize d or D for double, return new value for default. (cpp_classify_number): Issue pedwarn for use of d or D in suffix. gcc/testsuite/ PR c/29027 * gcc.dg/fltconst-1.c: Don't error for use of d or D in suffix. * gcc.dg/fltconst-2.c: New test. * gcc.dg/fltconst-double-pedantic-1.c: New test. * gcc.dg/fltconst-double-pedantic-2.c: New test. From-SVN: r145422
Diffstat (limited to 'gcc/c-lex.c')
-rw-r--r--gcc/c-lex.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index 72a9590..9fe29df 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -612,6 +612,13 @@ interpret_float (const cpp_token *token, unsigned int flags)
char *copy;
size_t copylen;
+ /* Default (no suffix) is double. */
+ if (flags & CPP_N_DEFAULT)
+ {
+ flags ^= CPP_N_DEFAULT;
+ flags |= CPP_N_MEDIUM;
+ }
+
/* Decode _Fract and _Accum. */
if (flags & CPP_N_FRACT || flags & CPP_N_ACCUM)
return interpret_fixed (token, flags);