commit 9c331b6de02e796fa25b04ed206b8570c83ee237
Author: Jason Merrill <jason@redhat.com>
Date: Fri Aug 12 17:09:47 2011 -0400
* c-common.h (cxx_dialect): Add cxx11 and cxx03.
* c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
and -Wc++11-compat.
* c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
* c-cppbuiltin.c (c_cpp_builtins): Also define
__GXX_EXPERIMENTAL_CXX11__.
@@ -643,11 +643,12 @@ extern int flag_use_repository;
/* The supported C++ dialects. */
enum cxx_dialect {
- /* C++98 */
+ /* C++98 with TC1 */
cxx98,
- /* Experimental features that are likely to become part of
- C++0x. */
- cxx0x
+ cxx03 = cxx98,
+ /* C++11 */
+ cxx0x,
+ cxx11 = cxx0x
};
/* The C++ dialect being used. C++98 is the default. */
@@ -598,8 +598,11 @@ c_cpp_builtins (cpp_reader *pfile)
cpp_define (pfile, "__DEPRECATED");
if (flag_rtti)
cpp_define (pfile, "__GXX_RTTI");
- if (cxx_dialect == cxx0x)
- cpp_define (pfile, "__GXX_EXPERIMENTAL_CXX0X__");
+ if (cxx_dialect == cxx11)
+ {
+ cpp_define (pfile, "__GXX_EXPERIMENTAL_CXX0X__");
+ cpp_define (pfile, "__GXX_EXPERIMENTAL_CXX11__");
+ }
}
/* Note that we define this for C as well, so that we know if
__attribute__((cleanup)) will interface with EH. */
@@ -110,7 +110,7 @@ static size_t include_cursor;
static void handle_OPT_d (const char *);
static void set_std_cxx98 (int);
-static void set_std_cxx0x (int);
+static void set_std_cxx11 (int);
static void set_std_c89 (int, int);
static void set_std_c99 (int);
static void set_std_c1x (int);
@@ -775,10 +775,10 @@ c_common_handle_option (size_t scode, const char *arg, int value,
set_std_cxx98 (code == OPT_std_c__98 /* ISO */);
break;
- case OPT_std_c__0x:
- case OPT_std_gnu__0x:
+ case OPT_std_c__11:
+ case OPT_std_gnu__11:
if (!preprocessing_asm_p)
- set_std_cxx0x (code == OPT_std_c__0x /* ISO */);
+ set_std_cxx11 (code == OPT_std_c__11 /* ISO */);
break;
case OPT_std_c90:
@@ -1501,18 +1501,18 @@ set_std_cxx98 (int iso)
cxx_dialect = cxx98;
}
-/* Set the C++ 0x working draft "standard" (without GNU extensions if ISO). */
+/* Set the C++ 2011 standard (without GNU extensions if ISO). */
static void
-set_std_cxx0x (int iso)
+set_std_cxx11 (int iso)
{
cpp_set_lang (parse_in, iso ? CLK_CXX0X: CLK_GNUCXX0X);
flag_no_gnu_keywords = iso;
flag_no_nonansi_builtin = iso;
flag_iso = iso;
- /* C++0x includes the C99 standard library. */
+ /* C++11 includes the C99 standard library. */
flag_isoc94 = 1;
flag_isoc99 = 1;
- cxx_dialect = cxx0x;
+ cxx_dialect = cxx11;
}
/* Args to -d specify what to dump. Silently ignore
@@ -289,7 +289,11 @@ Warn about C constructs that are not in the common subset of C and C++
Wc++0x-compat
C++ ObjC++ Var(warn_cxx0x_compat) Warning
-Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x
+Deprecated in favor of -Wc++11-compat
+
+Wc++11-compat
+C++ ObjC++ Warning Alias(Wc++0x-compat)
+Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
Wcast-qual
C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
@@ -1175,12 +1179,13 @@ std=c++03
C++ ObjC++ Alias(std=c++98)
Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
-std=c++0x
+std=c++11
C++ ObjC++
-Conform to the ISO 1998 C++ standard, with extensions that are likely to
-become a part of the upcoming ISO C++ standard, dubbed C++0x. Note that the
-extensions enabled by this mode are experimental and may be removed in
-future releases of GCC.
+Conform to the ISO 2011 C++ standard (experimental and incomplete support)
+
+std=c++0x
+C++ ObjC++ Alias(std=c++11)
+Deprecated in favor of -std=c++11
std=c1x
C ObjC
@@ -1204,14 +1209,21 @@ Deprecated in favor of -std=c99
std=gnu++98
C++ ObjC++
-Conform to the ISO 1998 C++ standard with GNU extensions
+Conform to the ISO 1998 C++ standard revised by the 2003 technical
+corrigendum with GNU extensions
-std=gnu++0x
+std=gnu++03
+C++ ObjC++ Alias(std=gnu++98)
+Conform to the ISO 1998 C++ standard revised by the 2003 technical
+corrigendum with GNU extensions
+
+std=gnu++11
C++ ObjC++
-Conform to the ISO 1998 C++ standard, with GNU extensions and
-extensions that are likely to become a part of the upcoming ISO C++
-standard, dubbed C++0x. Note that the extensions enabled by this mode
-are experimental and may be removed in future releases of GCC.
+Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
+
+std=gnu++0x
+C++ ObjC++ Alias(std=gnu++11)
+Deprecated in favor of -std=gnu++11
std=gnu1x
C ObjC
commit 0b1d67e9a210b53328bf28c04c7e967dfe1a13a4
Author: Jason Merrill <jason@redhat.com>
Date: Fri Aug 12 18:10:33 2011 -0400
* class.c (check_field_decl): Change c++0x in diags to c++11.
* error.c (maybe_warn_cpp0x): Likewise.
* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
* pt.c (check_default_tmpl_args): Likewise.
@@ -2924,7 +2924,7 @@ check_field_decl (tree field,
if (!warned && errorcount > oldcount)
{
inform (DECL_SOURCE_LOCATION (field), "unrestricted unions "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
warned = true;
}
}
@@ -3205,55 +3205,55 @@ maybe_warn_cpp0x (cpp0x_warn_str str)
case CPP0X_INITIALIZER_LISTS:
pedwarn (input_location, 0,
"extended initializer lists "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_EXPLICIT_CONVERSION:
pedwarn (input_location, 0,
"explicit conversion operators "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_VARIADIC_TEMPLATES:
pedwarn (input_location, 0,
"variadic templates "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_LAMBDA_EXPR:
pedwarn (input_location, 0,
"lambda expressions "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_AUTO:
pedwarn (input_location, 0,
- "C++0x auto only available with -std=c++0x or -std=gnu++0x");
+ "C++0x auto only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_SCOPED_ENUMS:
pedwarn (input_location, 0,
- "scoped enums only available with -std=c++0x or -std=gnu++0x");
+ "scoped enums only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_DEFAULTED_DELETED:
pedwarn (input_location, 0,
"defaulted and deleted functions "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_INLINE_NAMESPACES:
pedwarn (input_location, OPT_pedantic,
"inline namespaces "
- "only available with -std=c++0x or -std=gnu++0x");
- break;
+ "only available with -std=c++11 or -std=gnu++11");
+ break;
case CPP0X_OVERRIDE_CONTROLS:
pedwarn (input_location, 0,
"override controls (override/final) "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_NSDMI:
pedwarn (input_location, 0,
"non-static data member initializers "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
case CPP0X_USER_DEFINED_LITERALS:
pedwarn (input_location, 0,
"user-defined literals "
- "only available with -std=c++0x or -std=gnu++0x");
+ "only available with -std=c++11 or -std=gnu++11");
break;
default:
gcc_unreachable ();
@@ -2759,8 +2759,8 @@ cp_parser_diagnose_invalid_type_name (cp_parser *parser,
The user should have said "typename A<T>::X". */
if (cxx_dialect < cxx0x && id == ridpointers[(int)RID_CONSTEXPR])
- inform (location, "C++0x %<constexpr%> only available with "
- "-std=c++0x or -std=gnu++0x");
+ inform (location, "C++11 %<constexpr%> only available with "
+ "-std=c++11 or -std=gnu++11");
else if (processing_template_decl && current_class_type
&& TYPE_BINFO (current_class_type))
{
@@ -4650,7 +4650,7 @@ check_default_tmpl_args (tree decl, tree parms, int is_primary,
"friend declarations");
else if (TREE_CODE (decl) == FUNCTION_DECL && (cxx_dialect == cxx98))
msg = G_("default template arguments may not be used in function templates "
- "without -std=c++0x or -std=gnu++0x");
+ "without -std=c++11 or -std=gnu++11");
else if (is_partial)
msg = G_("default template arguments may not be used in "
"partial specializations");
@@ -1,4 +1,4 @@
// { dg-options "-std=c++98" }
-constexpr int i = 42; // { dg-message "std=c\\+\\+0x" }
+constexpr int i = 42; // { dg-message "std=c\\+\\+11" }
// { dg-error "constexpr" "" { target *-*-* } 3 }
commit f87d07ed310959e53bd2ce30bde00394155a8764
Author: Jason Merrill <jason@redhat.com>
Date: Fri Aug 12 20:08:27 2011 -0400
* include/bits/c++0x_warning.h: Change -std=c++0x to -std=c++11.
@@ -28,10 +28,10 @@
#ifndef _CXX0X_WARNING_H
#define _CXX0X_WARNING_H 1
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
-#error This file requires compiler and library support for the upcoming \
-ISO C++ standard, C++0x. This support is currently experimental, and must be \
-enabled with the -std=c++0x or -std=gnu++0x compiler options.
+#ifndef __GXX_EXPERIMENTAL_CXX11__
+#error This file requires compiler and library support for the \
+ISO C++ 2011 standard. This support is currently experimental, and must be \
+enabled with the -std=c++11 or -std=gnu++11 compiler options.
#endif
#endif
@@ -20,7 +20,7 @@
#include <cstdbool>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <cstdint>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -19,7 +19,7 @@
#include <system_error>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <type_traits>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <array>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <tuple>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <unordered_map>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <unordered_set>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <ccomplex>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <cfenv>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <ctgmath>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <random>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <cinttypes>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <regex>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <atomic> // { dg-excess-errors "In file included from" }
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <condition_variable>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <future>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -20,7 +20,7 @@
#include <mutex>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
@@ -22,4 +22,4 @@
#include <thread>
-// { dg-error "upcoming ISO" "" { target *-*-* } 32 }
+// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }