Hi John,
I have reverted the commit in 187746. The following bots were broken for the past 2 hours: http://lab.llvm.org:8011/builders/clang-native-arm-cortex-a9/builds/10248 http://bb.pgr.jp/builders/cmake-clang-i686-mingw32/builds/3327 Thanks, Arnold On Aug 5, 2013, at 3:13 PM, Arnold Schwaighofer <[email protected]> wrote: > Hi John, > > This commit (187736) appears to have broken > > http://bb.pgr.jp/builders/cmake-clang-i686-mingw32/builds/3327 > > and our internal bots. Can you please fix or revert? > > > Thanks, > Arnold > > On Aug 5, 2013, at 2:15 PM, John Thompson > <[email protected]> wrote: > >> Author: jtsoftware >> Date: Mon Aug 5 14:15:50 2013 >> New Revision: 187736 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=187736&view=rev >> Log: >> Fixed incorrect include file exit detection. Added work-around to avoid >> error on header guard in nested include. Fixed a couple of coding standard >> issues on variable names. >> >> Modified: >> clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp >> >> Modified: clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp?rev=187736&r1=187735&r2=187736&view=diff >> ============================================================================== >> --- clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp (original) >> +++ clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp Mon Aug 5 >> 14:15:50 2013 >> @@ -818,8 +818,12 @@ public: >> if (HeaderPath.startswith("<")) >> return; >> HeaderHandle H = addHeader(HeaderPath); >> - if (H != getCurrentHeaderHandle()) >> + if (H != getCurrentHeaderHandle()) { >> + // Check for nested header. >> + if (!InNestedHeader) >> + InNestedHeader = isHeaderHandleInStack(H); >> pushHeaderHandle(H); >> + } >> } >> // Handle exiting a header source file. >> void handleHeaderExit(llvm::StringRef HeaderPath) { >> @@ -831,6 +835,7 @@ public: >> while ((H != getCurrentHeaderHandle()) && (HeaderStack.size() != 0)) >> popHeaderHandle(); >> } >> + InNestedHeader = false; >> } >> >> // Lookup/add string. >> @@ -839,11 +844,13 @@ public: >> // Get the handle of a header file entry. >> // Return HeaderHandleInvalid if not found. >> HeaderHandle findHeaderHandle(llvm::StringRef HeaderPath) const { >> + std::string CanonicalPath(HeaderPath); >> + std::replace(CanonicalPath.begin(), CanonicalPath.end(), '\\', '/'); >> HeaderHandle H = 0; >> for (std::vector<StringHandle>::const_iterator I = HeaderPaths.begin(), >> E = HeaderPaths.end(); >> I != E; ++I, ++H) { >> - if (**I == HeaderPath) >> + if (**I == CanonicalPath) >> return H; >> } >> return HeaderHandleInvalid; >> @@ -852,12 +859,12 @@ public: >> // Add a new header file entry, or return existing handle. >> // Return the header handle. >> HeaderHandle addHeader(llvm::StringRef HeaderPath) { >> - std::string canonicalPath(HeaderPath); >> - std::replace(canonicalPath.begin(), canonicalPath.end(), '\\', '/'); >> - HeaderHandle H = findHeaderHandle(canonicalPath); >> + std::string CanonicalPath(HeaderPath); >> + std::replace(CanonicalPath.begin(), CanonicalPath.end(), '\\', '/'); >> + HeaderHandle H = findHeaderHandle(CanonicalPath); >> if (H == HeaderHandleInvalid) { >> H = HeaderPaths.size(); >> - HeaderPaths.push_back(addString(canonicalPath)); >> + HeaderPaths.push_back(addString(CanonicalPath)); >> } >> return H; >> } >> @@ -993,6 +1000,9 @@ public: >> bool ConditionValue, >> llvm::StringRef ConditionUnexpanded, >> InclusionPathHandle InclusionPathHandle) { >> + // Ignore header guards, assuming the header guard is the only >> conditional. >> + if (InNestedHeader) >> + return; >> StringHandle ConditionUnexpandedHandle(addString(ConditionUnexpanded)); >> PPItemKey InstanceKey(PP, ConditionUnexpandedHandle, H, InstanceLoc); >> ConditionalExpansionMapIter I = ConditionalExpansions.find(InstanceKey); >> @@ -1002,7 +1012,8 @@ public: >> getSourceLocationString(PP, InstanceLoc) + ":\n" + >> getSourceLine(PP, InstanceLoc) + "\n"; >> ConditionalExpansions[InstanceKey] = >> - ConditionalTracker(DirectiveKind, ConditionValue, >> ConditionUnexpandedHandle, >> + ConditionalTracker(DirectiveKind, ConditionValue, >> + ConditionUnexpandedHandle, >> InclusionPathHandle); >> } else { >> // We've seen the conditional before. Get its tracker. >> @@ -1157,6 +1168,7 @@ private: >> InclusionPathHandle CurrentInclusionPathHandle; >> MacroExpansionMap MacroExpansions; >> ConditionalExpansionMap ConditionalExpansions; >> + bool InNestedHeader; >> }; >> >> // PreprocessorTracker functions. >> @@ -1180,10 +1192,12 @@ void PreprocessorCallbacks::FileChanged( >> PPTracker.handleHeaderEntry(PP, getSourceLocationFile(PP, Loc)); >> break; >> case ExitFile: >> - if (PrevFID.isInvalid()) >> - PPTracker.handleHeaderExit(RootHeaderFile); >> - else >> - PPTracker.handleHeaderExit(getSourceLocationFile(PP, Loc)); >> + { >> + const clang::FileEntry *F = >> + PP.getSourceManager().getFileEntryForID(PrevFID); >> + if (F != NULL) >> + PPTracker.handleHeaderExit(F->getName()); >> + } >> break; >> case SystemHeaderPragma: >> case RenameFile: >> >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
