]> granicus.if.org Git - clang/commitdiff
Fix PR1969. stdin has no FileEntry.
authorChris Lattner <sabre@nondot.org>
Fri, 1 Feb 2008 05:34:02 +0000 (05:34 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 1 Feb 2008 05:34:02 +0000 (05:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46629 91177308-0d34-0410-b5e6-96231b3b80d8

Lex/HeaderSearch.cpp
Lex/Preprocessor.cpp

index e4f7aeb806b6db4200417e8efc9e5d1232d70642..bd36f35d49bc4cd68e106d95b492111cfa5f43fb 100644 (file)
@@ -293,6 +293,8 @@ const FileEntry *HeaderSearch::
 LookupSubframeworkHeader(const char *FilenameStart,
                          const char *FilenameEnd,
                          const FileEntry *ContextFileEnt) {
+  assert(ContextFileEnt && "No context file?");
+  
   // Framework names must have a '/' in the filename.  Find it.
   const char *SlashPos = std::find(FilenameStart, FilenameEnd, '/');
   if (SlashPos == FilenameEnd) return 0;
index 34b5fe21833dc62c81ae2241052d22f4cf702154..a73757f1b59e09c75a387e98a276f1f1517cdec7 100644 (file)
@@ -500,19 +500,20 @@ const FileEntry *Preprocessor::LookupFile(const char *FilenameStart,
   // to one of the headers on the #include stack.  Walk the list of the current
   // headers on the #include stack and pass them to HeaderInfo.
   if (CurLexer && !CurLexer->Is_PragmaLexer) {
-    CurFileEnt = SourceMgr.getFileEntryForLoc(CurLexer->getFileLoc());
-    if ((FE = HeaderInfo.LookupSubframeworkHeader(FilenameStart, FilenameEnd,
-                                                  CurFileEnt)))
-      return FE;
+    if ((CurFileEnt = SourceMgr.getFileEntryForLoc(CurLexer->getFileLoc())))
+      if ((FE = HeaderInfo.LookupSubframeworkHeader(FilenameStart, FilenameEnd,
+                                                    CurFileEnt)))
+        return FE;
   }
   
   for (unsigned i = 0, e = IncludeMacroStack.size(); i != e; ++i) {
     IncludeStackInfo &ISEntry = IncludeMacroStack[e-i-1];
     if (ISEntry.TheLexer && !ISEntry.TheLexer->Is_PragmaLexer) {
-      CurFileEnt = SourceMgr.getFileEntryForLoc(ISEntry.TheLexer->getFileLoc());
-      if ((FE = HeaderInfo.LookupSubframeworkHeader(FilenameStart, FilenameEnd,
-                                                    CurFileEnt)))
-        return FE;
+      if ((CurFileEnt = 
+           SourceMgr.getFileEntryForLoc(ISEntry.TheLexer->getFileLoc())))
+        if ((FE = HeaderInfo.LookupSubframeworkHeader(FilenameStart,
+                                                      FilenameEnd, CurFileEnt)))
+          return FE;
     }
   }