summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-01-09 00:38:08 +0000
committerTed Kremenek <kremenek@apple.com>2009-01-09 00:38:08 +0000
commitb54c19a7549d296741d5d228dee4a34bdfef2338 (patch)
treec47a407bd7df8862d8199603aeccbd9ab7ef5d8b
parent66979450693a957d5fd4eb1c33c74f801174c422 (diff)
downloadbcm5719-llvm-b54c19a7549d296741d5d228dee4a34bdfef2338.tar.gz
bcm5719-llvm-b54c19a7549d296741d5d228dee4a34bdfef2338.zip
Enable support for '-x objective-c++-header'.
llvm-svn: 61963
-rw-r--r--clang/Driver/clang.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp
index 77fb3c8f017..268c26b0dfa 100644
--- a/clang/Driver/clang.cpp
+++ b/clang/Driver/clang.cpp
@@ -255,7 +255,8 @@ enum LangKind {
langkind_objc_cpp,
langkind_objc_pch,
langkind_objcxx,
- langkind_objcxx_cpp
+ langkind_objcxx_cpp,
+ langkind_objcxx_pch
};
/* TODO: GCC also accepts:
@@ -283,7 +284,9 @@ BaseLang("x", llvm::cl::desc("Base language to compile"),
clEnumValN(langkind_c_pch,"c-header",
"Precompiled C header"),
clEnumValN(langkind_objc_pch, "objective-c-header",
- "Precompiled Objective C header"),
+ "Precompiled Objective-C header"),
+ clEnumValN(langkind_objcxx_pch, "objective-c++-header",
+ "Precompiled Objective-C++ header"),
clEnumValEnd));
static llvm::cl::opt<bool>
@@ -354,13 +357,27 @@ static bool InitializeLangOptions(LangOptions &Options, LangKind LK){
// FIXME: implement -fpreprocessed mode.
bool NoPreprocess = false;
bool PCH = false;
+
+ // Test for 'PCH'.
+ switch (LK) {
+ default:
+ break;
+ case langkind_c_pch:
+ LK = langkind_c;
+ PCH = true;
+ break;
+ case langkind_objc_pch:
+ LK = langkind_objc;
+ PCH = true;
+ break;
+ case langkind_objcxx_pch:
+ LK = langkind_objcxx;
+ PCH = true;
+ break;
+ }
switch (LK) {
default: assert(0 && "Unknown language kind!");
- case langkind_c_pch:
- InitializeCOptions(Options);
- PCH = true;
- break;
case langkind_asm_cpp:
Options.AsmPreprocessor = 1;
// FALLTHROUGH
@@ -376,10 +393,6 @@ static bool InitializeLangOptions(LangOptions &Options, LangKind LK){
case langkind_cxx:
Options.CPlusPlus = 1;
break;
- case langkind_objc_pch:
- InitializeObjCOptions(Options);
- PCH = true;
- break;
case langkind_objc_cpp:
NoPreprocess = true;
// FALLTHROUGH
@@ -522,6 +535,7 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
case langkind_cxx_cpp:
case langkind_objcxx:
case langkind_objcxx_cpp:
+ case langkind_objcxx_pch:
LangStd = lang_gnucxx98;
break;
}
OpenPOWER on IntegriCloud