davide created this revision. davide added reviewers: silvas, doug.gregor. davide added a subscriber: cfe-commits.
I found this by visual inspection while trying to get up-to-speed on modules, so I'm still uncertain how to test it. If the current one is really the actual behaviour, then parse can return void. http://reviews.llvm.org/D17787 Files: lib/Lex/ModuleMap.cpp Index: lib/Lex/ModuleMap.cpp =================================================================== --- lib/Lex/ModuleMap.cpp +++ lib/Lex/ModuleMap.cpp @@ -1402,7 +1402,8 @@ // Parse the optional attribute list. Attributes Attrs; - parseOptionalAttributes(Attrs); + if (parseOptionalAttributes(Attrs)) + return; // Parse the opening brace. if (!Tok.is(MMToken::LBrace)) { @@ -2067,7 +2068,9 @@ // Parse the optional attributes. Attributes Attrs; - parseOptionalAttributes(Attrs); + if (parseOptionalAttributes(Attrs)) + return; + if (Attrs.IsExhaustive && !ActiveModule->Parent) { ActiveModule->ConfigMacrosExhaustive = true; } @@ -2215,7 +2218,8 @@ // Parse optional attributes. Attributes Attrs; - parseOptionalAttributes(Attrs); + if (parseOptionalAttributes(Attrs)) + return; if (ActiveModule) { // Note that we have an inferred submodule.
Index: lib/Lex/ModuleMap.cpp =================================================================== --- lib/Lex/ModuleMap.cpp +++ lib/Lex/ModuleMap.cpp @@ -1402,7 +1402,8 @@ // Parse the optional attribute list. Attributes Attrs; - parseOptionalAttributes(Attrs); + if (parseOptionalAttributes(Attrs)) + return; // Parse the opening brace. if (!Tok.is(MMToken::LBrace)) { @@ -2067,7 +2068,9 @@ // Parse the optional attributes. Attributes Attrs; - parseOptionalAttributes(Attrs); + if (parseOptionalAttributes(Attrs)) + return; + if (Attrs.IsExhaustive && !ActiveModule->Parent) { ActiveModule->ConfigMacrosExhaustive = true; } @@ -2215,7 +2218,8 @@ // Parse optional attributes. Attributes Attrs; - parseOptionalAttributes(Attrs); + if (parseOptionalAttributes(Attrs)) + return; if (ActiveModule) { // Note that we have an inferred submodule.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits