Add support for C++'0x keywords, patch by Doug Gregor



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39897 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 43eaee6..404baad 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -207,7 +207,8 @@
   lang_unspecified,  
   lang_c89, lang_c94, lang_c99,
   lang_gnu89, lang_gnu99,
-  lang_cxx98, lang_gnucxx98
+  lang_cxx98, lang_gnucxx98,
+  lang_cxx0x, lang_gnucxx0x
 };
 
 static llvm::cl::opt<LangStds>
@@ -233,6 +234,11 @@
                    clEnumValN(lang_gnucxx98, "gnu++98",
                               "ISO C++ 1998 with amendments and GNU "
                               "extensions (default for C++)"),
+                   clEnumValN(lang_cxx0x,    "c++0x",
+                              "Upcoming ISO C++ 200x with amendments"),
+                   clEnumValN(lang_gnucxx0x, "gnu++0x",
+                              "Upcoming ISO C++ 200x with amendments and GNU "
+                              "extensions (default for C++)"),
                    clEnumValEnd));
 
 static llvm::cl::opt<bool>
@@ -269,6 +275,10 @@
 
   // Fall through from newer standards to older ones.  This isn't really right.
   // FIXME: Enable specifically the right features based on the language stds.
+  case lang_gnucxx0x:
+  case lang_cxx0x:
+    Options.CPlusPlus0x = 1;
+    // FALL THROUGH
   case lang_gnucxx98:
   case lang_cxx98:
     Options.CPlusPlus = 1;