forked from OSchip/llvm-project
Add support for assembler-with-cpp (preprocessed .S files), patch by
Roman Divacky! llvm-svn: 57988
This commit is contained in:
parent
f6655a9e79
commit
720d515ee9
|
@ -207,6 +207,7 @@ enum LangKind {
|
||||||
langkind_unspecified,
|
langkind_unspecified,
|
||||||
langkind_c,
|
langkind_c,
|
||||||
langkind_c_cpp,
|
langkind_c_cpp,
|
||||||
|
langkind_asm_cpp,
|
||||||
langkind_c_pch,
|
langkind_c_pch,
|
||||||
langkind_cxx,
|
langkind_cxx,
|
||||||
langkind_cxx_cpp,
|
langkind_cxx_cpp,
|
||||||
|
@ -219,7 +220,7 @@ enum LangKind {
|
||||||
|
|
||||||
/* TODO: GCC also accepts:
|
/* TODO: GCC also accepts:
|
||||||
c-header c++-header objective-c-header objective-c++-header
|
c-header c++-header objective-c-header objective-c++-header
|
||||||
assembler assembler-with-cpp
|
assembler
|
||||||
ada, f77*, ratfor (!), f95, java, treelang
|
ada, f77*, ratfor (!), f95, java, treelang
|
||||||
*/
|
*/
|
||||||
static llvm::cl::opt<LangKind>
|
static llvm::cl::opt<LangKind>
|
||||||
|
@ -231,6 +232,8 @@ BaseLang("x", llvm::cl::desc("Base language to compile"),
|
||||||
clEnumValN(langkind_objcxx,"objective-c++","Objective C++"),
|
clEnumValN(langkind_objcxx,"objective-c++","Objective C++"),
|
||||||
clEnumValN(langkind_c_cpp, "c-cpp-output",
|
clEnumValN(langkind_c_cpp, "c-cpp-output",
|
||||||
"Preprocessed C"),
|
"Preprocessed C"),
|
||||||
|
clEnumValN(langkind_asm_cpp, "assembler-with-cpp",
|
||||||
|
"Preprocessed asm"),
|
||||||
clEnumValN(langkind_cxx_cpp, "c++-cpp-output",
|
clEnumValN(langkind_cxx_cpp, "c++-cpp-output",
|
||||||
"Preprocessed C++"),
|
"Preprocessed C++"),
|
||||||
clEnumValN(langkind_objc_cpp, "objective-c-cpp-output",
|
clEnumValN(langkind_objc_cpp, "objective-c-cpp-output",
|
||||||
|
@ -276,6 +279,8 @@ static LangKind GetLanguage(const std::string &Filename) {
|
||||||
// assembler: .S
|
// assembler: .S
|
||||||
if (Ext == "c")
|
if (Ext == "c")
|
||||||
return langkind_c;
|
return langkind_c;
|
||||||
|
else if (Ext == "S" || Ext == "s")
|
||||||
|
return langkind_asm_cpp;
|
||||||
else if (Ext == "i")
|
else if (Ext == "i")
|
||||||
return langkind_c_cpp;
|
return langkind_c_cpp;
|
||||||
else if (Ext == "ii")
|
else if (Ext == "ii")
|
||||||
|
@ -316,6 +321,8 @@ static bool InitializeLangOptions(LangOptions &Options, LangKind LK){
|
||||||
InitializeCOptions(Options);
|
InitializeCOptions(Options);
|
||||||
PCH = true;
|
PCH = true;
|
||||||
break;
|
break;
|
||||||
|
case langkind_asm_cpp:
|
||||||
|
// FALLTHROUGH
|
||||||
case langkind_c_cpp:
|
case langkind_c_cpp:
|
||||||
NoPreprocess = true;
|
NoPreprocess = true;
|
||||||
// FALLTHROUGH
|
// FALLTHROUGH
|
||||||
|
@ -458,6 +465,7 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
|
||||||
switch (LK) {
|
switch (LK) {
|
||||||
default: assert(0 && "Unknown base language");
|
default: assert(0 && "Unknown base language");
|
||||||
case langkind_c:
|
case langkind_c:
|
||||||
|
case langkind_asm_cpp:
|
||||||
case langkind_c_cpp:
|
case langkind_c_cpp:
|
||||||
case langkind_c_pch:
|
case langkind_c_pch:
|
||||||
case langkind_objc:
|
case langkind_objc:
|
||||||
|
|
|
@ -36,7 +36,7 @@ CCC_LOG = checkenv('CCC_LOG')
|
||||||
CCC_ECHO = checkbool('CCC_ECHO')
|
CCC_ECHO = checkbool('CCC_ECHO')
|
||||||
CCC_NATIVE = checkbool('CCC_NATIVE','1')
|
CCC_NATIVE = checkbool('CCC_NATIVE','1')
|
||||||
CCC_FALLBACK = checkbool('CCC_FALLBACK')
|
CCC_FALLBACK = checkbool('CCC_FALLBACK')
|
||||||
CCC_LANGUAGES = checkenv('CCC_LANGUAGES','c,c++,c-cpp-output,objective-c,objective-c++,objective-c-cpp-output')
|
CCC_LANGUAGES = checkenv('CCC_LANGUAGES','c,c++,c-cpp-output,objective-c,objective-c++,objective-c-cpp-output,assembler-with-cpp')
|
||||||
if CCC_LANGUAGES:
|
if CCC_LANGUAGES:
|
||||||
CCC_LANGUAGES = set([s.strip() for s in CCC_LANGUAGES.split(',')])
|
CCC_LANGUAGES = set([s.strip() for s in CCC_LANGUAGES.split(',')])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue