[cfe-commits] r40414 - in /cfe/trunk: Lex/Pragma.cpp Lex/Preprocessor.cpp include/clang/Lex/Preprocessor.h

Chris Lattner sabre at nondot.org
Sun Jul 22 21:15:27 PDT 2007


Author: lattner
Date: Sun Jul 22 23:15:27 2007
New Revision: 40414

URL: http://llvm.org/viewvc/llvm-project?rev=40414&view=rev
Log:
refactor the interface to Preprocessor::GetIncludeFilenameSpelling,
no functionality changes.

Modified:
    cfe/trunk/Lex/Pragma.cpp
    cfe/trunk/Lex/Preprocessor.cpp
    cfe/trunk/include/clang/Lex/Preprocessor.h

Modified: cfe/trunk/Lex/Pragma.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Lex/Pragma.cpp?rev=40414&r1=40413&r2=40414&view=diff

==============================================================================
--- cfe/trunk/Lex/Pragma.cpp (original)
+++ cfe/trunk/Lex/Pragma.cpp Sun Jul 22 23:15:27 2007
@@ -254,8 +254,10 @@
   llvm::SmallVector<char, 128> FilenameBuffer;
   FilenameBuffer.resize(FilenameTok.getLength());
   
-  const char *FilenameStart = &FilenameBuffer[0], *FilenameEnd;
-  bool isAngled = GetIncludeFilenameSpelling(FilenameTok,
+  const char *FilenameStart = &FilenameBuffer[0];
+  unsigned Len = getSpelling(FilenameTok, FilenameStart);
+  const char *FilenameEnd = FilenameStart+Len;
+  bool isAngled = GetIncludeFilenameSpelling(FilenameTok.getLocation(),
                                              FilenameStart, FilenameEnd);
   // If GetIncludeFilenameSpelling set the start ptr to null, there was an
   // error.

Modified: cfe/trunk/Lex/Preprocessor.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Lex/Preprocessor.cpp?rev=40414&r1=40413&r2=40414&view=diff

==============================================================================
--- cfe/trunk/Lex/Preprocessor.cpp (original)
+++ cfe/trunk/Lex/Preprocessor.cpp Sun Jul 22 23:15:27 2007
@@ -1584,39 +1584,37 @@
 /// caller is expected to provide a buffer that is large enough to hold the
 /// spelling of the filename, but is also expected to handle the case when
 /// this method decides to use a different buffer.
-bool Preprocessor::GetIncludeFilenameSpelling(const Token &FilenameTok,
+bool Preprocessor::GetIncludeFilenameSpelling(SourceLocation Loc,
                                               const char *&BufStart,
                                               const char *&BufEnd) {
   // Get the text form of the filename.
-  unsigned Len = getSpelling(FilenameTok, BufStart);
-  BufEnd = BufStart+Len;
   assert(BufStart != BufEnd && "Can't have tokens with empty spellings!");
   
   // Make sure the filename is <x> or "x".
   bool isAngled;
   if (BufStart[0] == '<') {
     if (BufEnd[-1] != '>') {
-      Diag(FilenameTok.getLocation(), diag::err_pp_expects_filename);
+      Diag(Loc, diag::err_pp_expects_filename);
       BufStart = 0;
       return true;
     }
     isAngled = true;
   } else if (BufStart[0] == '"') {
     if (BufEnd[-1] != '"') {
-      Diag(FilenameTok.getLocation(), diag::err_pp_expects_filename);
+      Diag(Loc, diag::err_pp_expects_filename);
       BufStart = 0;
       return true;
     }
     isAngled = false;
   } else {
-    Diag(FilenameTok.getLocation(), diag::err_pp_expects_filename);
+    Diag(Loc, diag::err_pp_expects_filename);
     BufStart = 0;
     return true;
   }
   
   // Diagnose #include "" as invalid.
   if (BufEnd-BufStart <= 2) {
-    Diag(FilenameTok.getLocation(), diag::err_pp_empty_filename);
+    Diag(Loc, diag::err_pp_empty_filename);
     BufStart = 0;
     return "";
   }
@@ -1646,8 +1644,10 @@
   llvm::SmallVector<char, 128> FilenameBuffer;
   FilenameBuffer.resize(FilenameTok.getLength());
   
-  const char *FilenameStart = &FilenameBuffer[0], *FilenameEnd;
-  bool isAngled = GetIncludeFilenameSpelling(FilenameTok,
+  const char *FilenameStart = &FilenameBuffer[0];
+  unsigned Len = getSpelling(FilenameTok, FilenameStart);
+  const char *FilenameEnd = FilenameStart+Len;
+  bool isAngled = GetIncludeFilenameSpelling(FilenameTok.getLocation(),
                                              FilenameStart, FilenameEnd);
   // If GetIncludeFilenameSpelling set the start ptr to null, there was an
   // error.

Modified: cfe/trunk/include/clang/Lex/Preprocessor.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=40414&r1=40413&r2=40414&view=diff

==============================================================================
--- cfe/trunk/include/clang/Lex/Preprocessor.h (original)
+++ cfe/trunk/include/clang/Lex/Preprocessor.h Sun Jul 22 23:15:27 2007
@@ -409,7 +409,7 @@
   /// caller is expected to provide a buffer that is large enough to hold the
   /// spelling of the filename, but is also expected to handle the case when
   /// this method decides to use a different buffer.
-  bool GetIncludeFilenameSpelling(const Token &FNTok,
+  bool GetIncludeFilenameSpelling(SourceLocation Loc,
                                   const char *&BufStart, const char *&BufEnd);
   
   /// LookupFile - Given a "foo" or <foo> reference, look up the indicated file,





More information about the cfe-commits mailing list