From e1f1ee86a8b97bdf12593c02c0ef6e286f2c795d Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 25 Jan 2007 04:04:18 +0000 Subject: [PATCH] c-common.h (RID_FIRST_CXX0X): New. 2007-01-24 Douglas Gregor * c-common.h (RID_FIRST_CXX0X): New. (RID_LAST_CXX0X): New. * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered by -Wall. * c.opt (Wc++0x-compat): New. * doc/invoke.texi (-Wc++0x-compat): Document. From-SVN: r121162 --- gcc/ChangeLog | 9 +++++++++ gcc/c-common.h | 2 ++ gcc/c-opts.c | 1 + gcc/c.opt | 3 +++ gcc/doc/invoke.texi | 9 +++++++-- 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0167fa..7040285 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-01-24 Douglas Gregor + + * c-common.h (RID_FIRST_CXX0X): New. + (RID_LAST_CXX0X): New. + * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered + by -Wall. + * c.opt (Wc++0x-compat): New. + * doc/invoke.texi (-Wc++0x-compat): Document. + 2007-01-24 Kaveh R. Ghazi * builtins.c (fold_builtin_carg): New. diff --git a/gcc/c-common.h b/gcc/c-common.h index 7b35256..78b3497 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -108,6 +108,8 @@ enum rid RID_FIRST_MODIFIER = RID_STATIC, RID_LAST_MODIFIER = RID_ONEWAY, + RID_FIRST_CXX0X = RID_STATIC_ASSERT, + RID_LAST_CXX0X = RID_STATIC_ASSERT, RID_FIRST_AT = RID_AT_ENCODE, RID_LAST_AT = RID_AT_IMPLEMENTATION, RID_FIRST_PQ = RID_IN, diff --git a/gcc/c-opts.c b/gcc/c-opts.c index 85ea6bb..720f72d 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -417,6 +417,7 @@ c_common_handle_option (size_t scode, const char *arg, int value) /* C++-specific warnings. */ warn_reorder = value; warn_nontemplate_friend = value; + warn_cxx0x_compat = value; if (value > 0) warn_write_strings = true; } diff --git a/gcc/c.opt b/gcc/c.opt index c5bf9be..6d3fa88 100644 --- a/gcc/c.opt +++ b/gcc/c.opt @@ -132,6 +132,9 @@ Wc++-compat C Var(warn_cxx_compat) Warn about C constructs that are not in the common subset of C and C++ +Wc++0x-compat +C++ ObjC++ Var(warn_cxx0x_compat) +Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x Wcast-qual C ObjC C++ ObjC++ Var(warn_cast_qual) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 4cd0a43..18fee96 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -223,8 +223,8 @@ Objective-C and Objective-C++ Dialects}. @xref{Warning Options,,Options to Request or Suppress Warnings}. @gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol -w -Wextra -Wall -Waggregate-return -Walways-true -Warray-bounds @gol --Wno-attributes -Wc++-compat -Wcast-align -Wcast-qual -Wchar-subscripts @gol --Wclobbered -Wcomment @gol +-Wno-attributes -Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual @gol +-Wchar-subscripts -Wclobbered -Wcomment @gol -Wconversion -Wno-deprecated-declarations @gol -Wdisabled-optimization -Wno-div-by-zero @gol -Wempty-body -Wno-endif-labels @gol @@ -3149,6 +3149,11 @@ Warn about ISO C constructs that are outside of the common subset of ISO C and ISO C++, e.g.@: request for implicit conversion from @code{void *} to a pointer to non-@code{void} type. +@item -Wc++0x-compat @r{(C++ and Objective-C++ only)} +Warn about C++ constructs whose meaning differs between ISO C++ 1998 and +ISO C++ 200x, e.g., identifiers in ISO C++ 1998 that will become keywords +in ISO C++ 200x. This warning is enabled by @option{-Wall}. + @item -Wcast-qual @opindex Wcast-qual Warn whenever a pointer is cast so as to remove a type qualifier from -- 2.7.4