Author: kristina Date: Wed May 15 20:30:08 2019 New Revision: 360842 URL: http://llvm.org/viewvc/llvm-project?rev=360842&view=rev Log: Revert r360833 until I can work out the issue with Win32 bots
This reverts "r360833: [Clang][PP] Add the __FILE_NAME__ builtin macro." The tests are failing on Windows bots, reverting the patchset until I can work out why. Removed: cfe/trunk/test/Preprocessor/Inputs/include-subdir/ cfe/trunk/test/Preprocessor/file_name_macro.c Modified: cfe/trunk/include/clang/Lex/Preprocessor.h cfe/trunk/lib/Lex/PPMacroExpansion.cpp Modified: cfe/trunk/include/clang/Lex/Preprocessor.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=360842&r1=360841&r2=360842&view=diff ============================================================================== --- cfe/trunk/include/clang/Lex/Preprocessor.h (original) +++ cfe/trunk/include/clang/Lex/Preprocessor.h Wed May 15 20:30:08 2019 @@ -147,7 +147,6 @@ class Preprocessor { IdentifierInfo *Ident__DATE__, *Ident__TIME__; // __DATE__, __TIME__ IdentifierInfo *Ident__INCLUDE_LEVEL__; // __INCLUDE_LEVEL__ IdentifierInfo *Ident__BASE_FILE__; // __BASE_FILE__ - IdentifierInfo *Ident__FILE_NAME__; // __FILE_NAME__ IdentifierInfo *Ident__TIMESTAMP__; // __TIMESTAMP__ IdentifierInfo *Ident__COUNTER__; // __COUNTER__ IdentifierInfo *Ident_Pragma, *Ident__pragma; // _Pragma, __pragma Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=360842&r1=360841&r2=360842&view=diff ============================================================================== --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original) +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Wed May 15 20:30:08 2019 @@ -363,7 +363,6 @@ void Preprocessor::RegisterBuiltinMacros } // Clang Extensions. - Ident__FILE_NAME__ = RegisterBuiltinMacro(*this, "__FILE_NAME__"); Ident__has_feature = RegisterBuiltinMacro(*this, "__has_feature"); Ident__has_extension = RegisterBuiltinMacro(*this, "__has_extension"); Ident__has_builtin = RegisterBuiltinMacro(*this, "__has_builtin"); @@ -1475,8 +1474,7 @@ void Preprocessor::ExpandBuiltinMacro(To // __LINE__ expands to a simple numeric value. OS << (PLoc.isValid()? PLoc.getLine() : 1); Tok.setKind(tok::numeric_constant); - } else if (II == Ident__FILE__ || II == Ident__BASE_FILE__ || - II == Ident__FILE_NAME__) { + } else if (II == Ident__FILE__ || II == Ident__BASE_FILE__) { // C99 6.10.8: "__FILE__: The presumed name of the current source file (a // character string literal)". This can be affected by #line. PresumedLoc PLoc = SourceMgr.getPresumedLoc(Tok.getLocation()); @@ -1497,27 +1495,7 @@ void Preprocessor::ExpandBuiltinMacro(To // Escape this filename. Turn '\' -> '\\' '"' -> '\"' SmallString<128> FN; if (PLoc.isValid()) { - // __FILE_NAME__ is a Clang-specific extension that expands to the - // the last part of __FILE__. - if (II == Ident__FILE_NAME__) { - // Try to get the last path component. - StringRef PLFileName = PLoc.getFilename(); - size_t LastSep = PLFileName.find_last_of('/'); -#ifdef _WIN32 - // On Windows targets, absolute paths can be normalized to use - // backslashes instead - handle this potential case here. - if (LastSep == StringRef::npos) - LastSep = PLFileName.find_last_of('\\'); -#endif - // Skip the separator and get the last part, otherwise fall back on - // returning the original full filename. - if (LastSep != StringRef::npos) - FN += PLFileName.substr(LastSep+1); - else - FN += PLFileName; - } else { - FN += PLoc.getFilename(); - } + FN += PLoc.getFilename(); Lexer::Stringify(FN); OS << '"' << FN << '"'; } Removed: cfe/trunk/test/Preprocessor/file_name_macro.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/file_name_macro.c?rev=360841&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/file_name_macro.c (original) +++ cfe/trunk/test/Preprocessor/file_name_macro.c (removed) @@ -1,44 +0,0 @@ -// RUN: %clang_cc1 -E %s -I%S/Inputs | FileCheck -strict-whitespace %s -// RUN: %clang_cc1 -fms-compatibility -DMS -E %s -I%S/Inputs | FileCheck -check-prefix=CHECK-MS -strict-whitespace %s -// RUN: %clang_cc1 -E %s -I%S/Inputs -DBADINC -verify - -#ifdef BADINC - -// Paranoia. - -__FILE_NAME__ -#include <include-subdir/> // expected-error {{file not found}} -__FILE_NAME__ - -#else - -// Reference. -1: "file_name_macro.c" - -// Ensure it expands correctly for this file. -2: __FILE_NAME__ - -// CHECK: {{^}}1: "file_name_macro.c" -// CHECK: {{^}}2: "file_name_macro.c" - -// Test if inclusion works right. -#ifdef MS -#include <include-subdir\file_name_macro_include.h> -// MS compatibility allows for mixed separators in paths. -#include <include-subdir/subdir1\hdr1.h> -#include <include-subdir\subdir1/hdr2.h> -#else -#include <include-subdir/file_name_macro_include.h> -#endif - -#include <include-subdir/h> - -// CHECK: {{^}}3: "file_name_macro_include.h" -// CHECK: {{^}}4: "file_name_macro_include.h" -// CHECK-NOT: {{^}}5: "file_name_macro_include.h" -// CHECK-MS: {{^}}5: "file_name_macro_include.h" -// CHECK: {{^}}6: "h" -// CHECK-MS: {{^}}7: "hdr1.h" -// CHECK-MS: {{^}}8: "hdr2.h" - -#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits