diff options
author | manu <manu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-20 22:12:52 +0000 |
---|---|---|
committer | manu <manu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-20 22:12:52 +0000 |
commit | 9ab71c6b292bda7d4826e8f20cf2c45dc0d86ba0 (patch) | |
tree | fd9591c53025bec4c451b0619535e1e5e33a2a4d /libcpp | |
parent | d124a06aa30d5b842c7d5ee1db7f124931ae6f9a (diff) | |
download | gcc-9ab71c6b292bda7d4826e8f20cf2c45dc0d86ba0.tar.gz |
2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/13358
* doc/invoke.texi (-Wlong-long): Update description.
* c-lex (interpret_integer): Only warn if there was no previous
overflow and -Wlong-long is enabled.
* c-decl.c (declspecs_add_type): Drop redundant flags.
* c.opt (Wlong-long): Init to -1.
* c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
and front-end warn_long_long. Wlong-long only depends on other
flags if it is uninitialized.
* c-parser.c (disable_extension_diagnostics): warn_long_long is
the same for CPP and FE.
(restore_extension_diagnostics): Likewise.
libcpp/
* init.c (cpp_create_reader): Wlong_long is disabled by default.
* expr.c (cpp_classify_number): Give different messages for C and
C++ front-ends.
cp/
* parser.c (cp_parser_check_decl_spec): Drop redundant flags.
* error.c (pedwarn_cxx98): New.
* cp-tree.h (pedwarn_cxx98): Declare.
testsuite/
* gcc.dg/wtr-int-type-1.c: Use two dg-warning to match two
messages. Test for "long long" in system headers.
* gcc.dg/c99-longlong-2.c: New.
* g++.dg/warn/pr13358.C: New.
* g++.dg/warn/pr13358-2.C: New.
* g++.dg/warn/pr13358-3.C: New.
* g++.dg/warn/pr13358-4.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146459 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 7 | ||||
-rw-r--r-- | libcpp/expr.c | 8 | ||||
-rw-r--r-- | libcpp/init.c | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 74979a21ee5..7fdc737239f 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,10 @@ +2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR c++/13358 + * init.c (cpp_create_reader): Wlong_long is disabled by default. + * expr.c (cpp_classify_number): Give different messages for C and + C++ front-ends. + 2009-04-19 Joseph Myers <joseph@codesourcery.com> PR preprocessor/20078 diff --git a/libcpp/expr.c b/libcpp/expr.c index 56945d94f4b..b9a17db9361 100644 --- a/libcpp/expr.c +++ b/libcpp/expr.c @@ -419,10 +419,12 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token) } if ((result & CPP_N_WIDTH) == CPP_N_LARGE - && ! CPP_OPTION (pfile, c99) && CPP_OPTION (pfile, warn_long_long)) - cpp_error (pfile, CPP_DL_PEDWARN, - "use of C99 long long integer constant"); + cpp_error (pfile, + CPP_OPTION (pfile, c99) ? CPP_DL_WARNING : CPP_DL_PEDWARN, + CPP_OPTION (pfile, cplusplus) + ? "use of C++0x long long integer constant" + : "use of C99 long long integer constant"); result |= CPP_N_INTEGER; } diff --git a/libcpp/init.c b/libcpp/init.c index d251f19f387..c21121707d3 100644 --- a/libcpp/init.c +++ b/libcpp/init.c @@ -160,7 +160,7 @@ cpp_create_reader (enum c_lang lang, hash_table *table, CPP_OPTION (pfile, warn_trigraphs) = 2; CPP_OPTION (pfile, warn_endif_labels) = 1; CPP_OPTION (pfile, warn_deprecated) = 1; - CPP_OPTION (pfile, warn_long_long) = !CPP_OPTION (pfile, c99); + CPP_OPTION (pfile, warn_long_long) = 0; CPP_OPTION (pfile, dollars_in_ident) = 1; CPP_OPTION (pfile, warn_dollars) = 1; CPP_OPTION (pfile, warn_variadic_macros) = 1; |