aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c-family/ChangeLog3
-rw-r--r--gcc/c-family/c-opts.c1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/bracket5.C6
3 files changed, 10 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 568b2c6..6169e52 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,5 +1,8 @@
2015-05-09 Jason Merrill <jason@redhat.com>
+ * c-opts.c (c_common_post_options): Also clear
+ cpp_opts->cpp_warn_cxx11_compat.
+
* c-common.h (enum cxx_dialect): Add cxx_unset.
* c-common.c (cxx_dialect): Initialize to cxx_unset.
* c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
index bd99871..e9eb511 100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -905,6 +905,7 @@ c_common_post_options (const char **pfilename)
/* If we're allowing C++0x constructs, don't warn about C++98
identifiers which are keywords in C++0x. */
warn_cxx11_compat = 0;
+ cpp_opts->cpp_warn_cxx11_compat = 0;
if (warn_narrowing == -1)
warn_narrowing = 1;
diff --git a/gcc/testsuite/g++.dg/cpp0x/bracket5.C b/gcc/testsuite/g++.dg/cpp0x/bracket5.C
new file mode 100644
index 0000000..22ac544
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/bracket5.C
@@ -0,0 +1,6 @@
+// { dg-options "-Wall" }
+// { dg-do compile { target c++11 } }
+
+template <int> struct X {};
+template <typename> struct Y { static int const c = 0; };
+int main() { return Y<X<1>>::c; }