From: Douglas Gregor Date: Mon, 12 Dec 2011 18:47:39 +0000 (+0000) Subject: Don't mark include guard macros as implicitly private. This isn't X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d83d2e73fdbe425acc4cac7b8130c464cb98333d;p=clang Don't mark include guard macros as implicitly private. This isn't actually a terribly good heuristic, and the world is too horrible for it to work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146393 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp index 37b62a6d02..24dda4f84c 100644 --- a/lib/Lex/PPLexerChange.cpp +++ b/lib/Lex/PPLexerChange.cpp @@ -212,28 +212,8 @@ bool Preprocessor::HandleEndOfFile(Token &Result, bool isEndOfMacro) { CurPPLexer->MIOpt.GetControllingMacroAtEndOfFile()) { // Okay, this has a controlling macro, remember in HeaderFileInfo. if (const FileEntry *FE = - SourceMgr.getFileEntryForID(CurPPLexer->getFileID())) { + SourceMgr.getFileEntryForID(CurPPLexer->getFileID())) HeaderInfo.SetFileControllingMacro(FE, ControllingMacro); - - // Controlling macros are implicitly private. - if (MacroInfo *MI = getMacroInfo( - const_cast(ControllingMacro))) { - if (MI->getVisibilityLocation().isInvalid()) { - // FIXME: HACK! Mark controlling macros from system headers as - // exported, along with our own Clang headers. This is a gross - // hack to deal with the fact that system headers are included in - // many places within module headers, but are not themselves - // modularized. - if ((StringRef(FE->getName()).find("lib/clang") - == StringRef::npos) && - (StringRef(FE->getName()).find("usr/include") - == StringRef::npos) && - (StringRef(FE->getName()).find("usr/local/include") - == StringRef::npos)) - MI->setVisibility(false, SourceLocation()); - } - } - } } } diff --git a/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h b/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h index 438fc9c516..a7b33f346e 100644 --- a/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h +++ b/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h @@ -1,4 +1,5 @@ #ifndef MODULE_SUBFRAMEWORK_H #define MODULE_SUBFRAMEWORK_H +#__private_macro__ MODULE_SUBFRAMEWORK_H char *module_subframework; #endif