From: Kristina Brooks <notstina@gmail.com>
Date: Thu, 16 May 2019 03:30:08 +0000 (+0000)
Subject: Revert r360833 until I can work out the issue with Win32 bots
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bd47850349c0e8e1306e59ee780c5cff7c3b1dbc;p=clang

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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@360842 91177308-0d34-0410-b5e6-96231b3b80d8
---

diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h
index 57c557d6a9..293fbafdab 100644
--- a/include/clang/Lex/Preprocessor.h
+++ b/include/clang/Lex/Preprocessor.h
@@ -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
diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp
index bc25dcd8ea..d698f0e657 100644
--- a/lib/Lex/PPMacroExpansion.cpp
+++ b/lib/Lex/PPMacroExpansion.cpp
@@ -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(Token &Tok) {
     // __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(Token &Tok) {
     // 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 << '"';
     }
diff --git a/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h b/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h
deleted file mode 100644
index e974799b1f..0000000000
--- a/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h
+++ /dev/null
@@ -1,6 +0,0 @@
-3: __FILE_NAME__
-4: "file_name_macro_include.h"
-#ifdef MS
-// Should be the same even when included with backslash.
-5: __FILE_NAME__
-#endif
diff --git a/test/Preprocessor/Inputs/include-subdir/h b/test/Preprocessor/Inputs/include-subdir/h
deleted file mode 100644
index b9839684e8..0000000000
--- a/test/Preprocessor/Inputs/include-subdir/h
+++ /dev/null
@@ -1 +0,0 @@
-6: __FILE_NAME__
diff --git a/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h b/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h
deleted file mode 100644
index f793be596c..0000000000
--- a/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h
+++ /dev/null
@@ -1 +0,0 @@
-7: __FILE_NAME__
diff --git a/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h b/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h
deleted file mode 100644
index 66860acc64..0000000000
--- a/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h
+++ /dev/null
@@ -1 +0,0 @@
-8: __FILE_NAME__
diff --git a/test/Preprocessor/file_name_macro.c b/test/Preprocessor/file_name_macro.c
deleted file mode 100644
index 9dc9dc5684..0000000000
--- a/test/Preprocessor/file_name_macro.c
+++ /dev/null
@@ -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