summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2014-10-26 13:12:35 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2014-10-26 13:12:35 +0000
commit0e98d938249667d227774d655d385cc4dfb697f0 (patch)
tree2e7f13f91bccedd3889e8415433c2860fa717597 /clang/lib/Lex/ModuleMap.cpp
parent4b01b7306cd084de0d435e1df50fdf4dbcebdc08 (diff)
downloadbcm5719-llvm-0e98d938249667d227774d655d385cc4dfb697f0.tar.gz
bcm5719-llvm-0e98d938249667d227774d655d385cc4dfb697f0.zip
ModuleMap::addHeader(): Appease msc17.
llvm-svn: 220639
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
-rw-r--r--clang/lib/Lex/ModuleMap.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp
index fb4135c2bc1..14eed0ae392 100644
--- a/clang/lib/Lex/ModuleMap.cpp
+++ b/clang/lib/Lex/ModuleMap.cpp
@@ -778,10 +778,22 @@ void ModuleMap::setUmbrellaDir(Module *Mod, const DirectoryEntry *UmbrellaDir) {
void ModuleMap::addHeader(Module *Mod, const FileEntry *Header,
ModuleHeaderRole Role) {
- auto HeaderLists = {&Mod->NormalHeaders, &Mod->PrivateHeaders,
- &Mod->TextualHeaders, &Mod->PrivateTextualHeaders};
- assert(Role >= 0 && Role < HeaderLists.size() && "unknown header role");
- HeaderLists.begin()[Role]->push_back(Header);
+ switch ((int)Role) {
+ default:
+ llvm_unreachable("unknown header role");
+ case NormalHeader:
+ Mod->NormalHeaders.push_back(Header);
+ break;
+ case PrivateHeader:
+ Mod->PrivateHeaders.push_back(Header);
+ break;
+ case TextualHeader:
+ Mod->TextualHeaders.push_back(Header);
+ break;
+ case PrivateHeader | TextualHeader:
+ Mod->PrivateTextualHeaders.push_back(Header);
+ break;
+ }
if (!(Role & TextualHeader)) {
bool isCompilingModuleHeader = Mod->getTopLevelModule() == CompilingModule;
OpenPOWER on IntegriCloud