diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-30 06:19:52 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-30 06:19:52 +0000 |
commit | 2f51489a62f598617bf9bf74f0dabc2aeca65e0c (patch) | |
tree | 1f10c30139f3332b5b0a7ef95837848ccc2b393d /llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp | |
parent | 90777a5b82ce888d8654ec463b3b2a5b63226fd9 (diff) | |
download | bcm5719-llvm-2f51489a62f598617bf9bf74f0dabc2aeca65e0c.tar.gz bcm5719-llvm-2f51489a62f598617bf9bf74f0dabc2aeca65e0c.zip |
New tests for the 'case' expression: not_empty, in_language.
llvm-svn: 51744
Diffstat (limited to 'llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp')
-rw-r--r-- | llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp b/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp index 68548d62b7c..0b6e8d7f34c 100644 --- a/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp +++ b/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp @@ -667,6 +667,16 @@ bool EmitCaseTest1Arg(const std::string& TestName, } else if (TestName == "input_languages_contain") { O << "InLangs.count(\"" << OptName << "\") != 0"; return true; + } else if (TestName == "in_language") { + // Works only for cmd_line! + O << "GetLanguage(inFile) == \"" << OptName << '\"'; + return true; + } else if (TestName == "not_empty") { + const GlobalOptionDescription& OptDesc = OptDescs.FindOption(OptName); + if (OptDesc.Type == OptionType::Switch) + throw OptName + ": incorrect option type!"; + O << '!' << OptDesc.GenVariableName() << ".empty()"; + return true; } return false; @@ -1026,7 +1036,7 @@ void EmitGenerateActionMethod (const ToolProperties& P, else EmitCaseConstructHandler(&InitPtrToDag(P.CmdLine), Indent2, EmitCmdLineVecFillCallback(Version, P.Name), - true, OptDescs, O); + false, OptDescs, O); // For every understood option, emit handling code. for (ToolOptionDescriptions::const_iterator B = P.OptDescs.begin(), @@ -1222,7 +1232,7 @@ void EmitPopulateLanguageMap (const RecordKeeper& Records, std::ostream& O) throw std::string("Error in the language map definition!"); // Generate code - O << "void llvmc::PopulateLanguageMap(LanguageMap& language_map) {\n"; + O << "void llvmc::PopulateLanguageMap() {\n"; for (unsigned i = 0; i < LangsToSuffixesList->size(); ++i) { Record* LangToSuffixes = LangsToSuffixesList->getElementAsRecord(i); @@ -1231,7 +1241,7 @@ void EmitPopulateLanguageMap (const RecordKeeper& Records, std::ostream& O) const ListInit* Suffixes = LangToSuffixes->getValueAsListInit("suffixes"); for (unsigned i = 0; i < Suffixes->size(); ++i) - O << Indent1 << "language_map[\"" + O << Indent1 << "GlobalLanguageMap[\"" << InitPtrToString(Suffixes->getElement(i)) << "\"] = \"" << Lang << "\";\n"; } @@ -1360,7 +1370,7 @@ void EmitPopulateCompilationGraph (Record* CompilationGraph, // Generate code O << "void llvmc::PopulateCompilationGraph(CompilationGraph& G) {\n" - << Indent1 << "PopulateLanguageMap(G.ExtsToLangs);\n\n"; + << Indent1 << "PopulateLanguageMap();\n\n"; // Insert vertices |