[cfe-commits] r62502 - /cfe/trunk/lib/Lex/PPLexerChange.cpp

Chris Lattner sabre at nondot.org
Mon Jan 19 00:01:53 PST 2009


Author: lattner
Date: Mon Jan 19 02:01:53 2009
New Revision: 62502

URL: http://llvm.org/viewvc/llvm-project?rev=62502&view=rev
Log:
do not use SourceManager::getFileCharacteristic(FileID), it is not
safe because a #line can change the file characteristic on a per-loc
basis.


Modified:
    cfe/trunk/lib/Lex/PPLexerChange.cpp

Modified: cfe/trunk/lib/Lex/PPLexerChange.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPLexerChange.cpp?rev=62502&r1=62501&r2=62502&view=diff

==============================================================================
--- cfe/trunk/lib/Lex/PPLexerChange.cpp (original)
+++ cfe/trunk/lib/Lex/PPLexerChange.cpp Mon Jan 19 02:01:53 2009
@@ -118,9 +118,10 @@
   // Notify the client, if desired, that we are in a new source file.
   if (Callbacks) {
     FileID FID = CurPPLexer->getFileID();
-    SrcMgr::CharacteristicKind FileType = SourceMgr.getFileCharacteristic(FID);
-    Callbacks->FileChanged(SourceMgr.getLocForStartOfFile(FID),
-                           PPCallbacks::EnterFile, FileType);
+    SourceLocation EnterLoc = SourceMgr.getLocForStartOfFile(FID);
+    SrcMgr::CharacteristicKind FileType =
+      SourceMgr.getFileCharacteristic(EnterLoc);
+    Callbacks->FileChanged(EnterLoc, PPCallbacks::EnterFile, FileType);
   }
 }
 
@@ -194,9 +195,9 @@
     // Notify the client, if desired, that we are in a new source file.
     if (Callbacks && !isEndOfMacro && CurPPLexer) {
       SrcMgr::CharacteristicKind FileType =
-        SourceMgr.getFileCharacteristic(CurPPLexer->getFileID());
-        Callbacks->FileChanged(CurPPLexer->getSourceLocation(),
-                               PPCallbacks::ExitFile, FileType); 
+        SourceMgr.getFileCharacteristic(CurPPLexer->getSourceLocation());
+      Callbacks->FileChanged(CurPPLexer->getSourceLocation(),
+                             PPCallbacks::ExitFile, FileType); 
     }
 
     // Client should lex another token.





More information about the cfe-commits mailing list