Give warnings about static initializers of non-integral type their own warning
flag so it can be individually controlled. The new flag is
  -Wc++0x-static-nonintegral-init.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127050 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Basic/DiagnosticGroups.td b/include/clang/Basic/DiagnosticGroups.td
index a7af8cd..33d5016 100644
--- a/include/clang/Basic/DiagnosticGroups.td
+++ b/include/clang/Basic/DiagnosticGroups.td
@@ -254,7 +254,9 @@
 
 // A warning group for warnings about using C++0x features as extensions in
 // earlier C++ versions.
-def CXX0x : DiagGroup<"c++0x-extensions">;
+def CXX0xStaticNonIntegralInitializer :
+  DiagGroup<"c++0x-static-nonintegral-init">;
+def CXX0x : DiagGroup<"c++0x-extensions", [CXX0xStaticNonIntegralInitializer]>;
 
 // A warning group for warnings about GCC extensions.
 def GNU : DiagGroup<"gnu", [GNUDesignator, VLA]>;
diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td
index f661bdb..df43a7e 100644
--- a/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/include/clang/Basic/DiagnosticSemaKinds.td
@@ -3300,7 +3300,7 @@
   "static data member of type %0 must be initialized out of line">;
 def ext_in_class_initializer_float_type : ExtWarn<
   "in-class initializer for static data member of type %0 "
-  "is a C++0x extension">, InGroup<CXX0x>;
+  "is a C++0x extension">, InGroup<CXX0xStaticNonIntegralInitializer>;
 def err_in_class_initializer_non_constant : Error<
   "in-class initializer is not a constant expression">;