From 5a6bb57eb9ad3397408aedca5c362ef36340a907 Mon Sep 17 00:00:00 2001 From: Janis Johnson Date: Mon, 14 May 2007 23:45:40 +0000 Subject: [PATCH] expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. libcpp/ * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. gcc/testsuite/ * gcc.dg/fltconst-pedantic-dfp.c: New test. From-SVN: r124731 --- gcc/testsuite/ChangeLog | 2 ++ gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c | 6 ++++++ libcpp/ChangeLog | 2 ++ libcpp/expr.c | 4 ++++ 4 files changed, 14 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b195815eda0..159cee58520 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2007-05-14 Janis Johnson + * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. + PR c/31924 * gcc.dg/fltconst-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c b/gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c new file mode 100644 index 00000000000..d0d1c4c52fc --- /dev/null +++ b/gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c @@ -0,0 +1,6 @@ +/* { dg-do compile } */ +/* { dg-options "-pedantic" } */ + +double a = 1.dl; /* { dg-warning "decimal float" } */ +double b = 1.df; /* { dg-warning "decimal float" } */ +double c = 1.dd; /* { dg-warning "decimal float" } */ diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 5b941ff9cca..31d96e8b684 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,5 +1,7 @@ 2007-05-14 Janis Johnson + * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. + PR c/31924 * expr.c (interpret_float_suffix): Check for invalid suffix. diff --git a/libcpp/expr.c b/libcpp/expr.c index 8401daee032..20090195acc 100644 --- a/libcpp/expr.c +++ b/libcpp/expr.c @@ -273,6 +273,10 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token) return CPP_N_INVALID; } + if ((result & CPP_N_DFLOAT) && CPP_PEDANTIC (pfile)) + cpp_error (pfile, CPP_DL_PEDWARN, + "decimal float constants are a GCC extension"); + result |= CPP_N_FLOATING; } else