OSDN Git Service

llvmc: Allow multiple LanguageMaps.
authorMikhail Glushenkov <foldr@codedgers.com>
Mon, 23 Aug 2010 19:24:16 +0000 (19:24 +0000)
committerMikhail Glushenkov <foldr@codedgers.com>
Mon, 23 Aug 2010 19:24:16 +0000 (19:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111829 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/LLVMCConfigurationEmitter.cpp

index 6927b01..38b3713 100644 (file)
@@ -2621,12 +2621,12 @@ void EmitPopulateLanguageMap (const RecordKeeper& Records, raw_ostream& O)
 {
   O << "int PopulateLanguageMap (LanguageMap& langMap) {\n";
 
 {
   O << "int PopulateLanguageMap (LanguageMap& langMap) {\n";
 
-  // Get the relevant field out of RecordKeeper
-  // TODO: change this to getAllDerivedDefinitions.
-  const Record* LangMapRecord = Records.getDef("LanguageMap");
+  const RecordVector& LanguageMaps =
+    Records.getAllDerivedDefinitions("LanguageMap");
 
 
-  if (LangMapRecord) {
-    ListInit* LangsToSuffixesList = LangMapRecord->getValueAsListInit("map");
+  for (RecordVector::const_iterator B = LanguageMaps.begin(),
+         E = LanguageMaps.end(); B!=E; ++B) {
+    ListInit* LangsToSuffixesList = (*B)->getValueAsListInit("map");
     if (!LangsToSuffixesList)
       throw "Error in the language map definition!";
 
     if (!LangsToSuffixesList)
       throw "Error in the language map definition!";