Yes, sorry about that, I did notice, just re-testing it, should have a fix for Windows bots in a few minutes.
On Thu, May 16, 2019 at 3:26 AM <douglas.y...@sony.com> wrote: > Hi Kristina, > > Your change does not seem to be working on Windows. Can you take a look? > > http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/6860 > > FAIL: Clang :: Preprocessor/file_name_macro.c (7959 of 14753) > ******************** TEST 'Clang :: Preprocessor/file_name_macro.c' FAILED > ******************** > Script: > -- > : 'RUN: at line 1'; > c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\clang.exe -cc1 > -internal-isystem > c:\b\slave\clang-x64-windows-msvc\build\build\stage1\lib\clang\9.0.0\include > -nostdsysteminc -E > C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c > -IC:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor/Inputs > | c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\filecheck.exe > -strict-whitespace > C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c > : 'RUN: at line 2'; > c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\clang.exe -cc1 > -internal-isystem > c:\b\slave\clang-x64-windows-msvc\build\build\stage1\lib\clang\9.0.0\include > -nostdsysteminc -fms-compatibility -DMS -E > C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c > -IC:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor/Inputs > | c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\filecheck.exe > -check-prefix=CHECK-MS -strict-whitespace > C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c > : 'RUN: at line 3'; > c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\clang.exe -cc1 > -internal-isystem > c:\b\slave\clang-x64-windows-msvc\build\build\stage1\lib\clang\9.0.0\include > -nostdsysteminc -E > C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c > -IC:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor/Inputs > -DBADINC -verify > -- > Exit Code: 1 > > Command Output (stdout): > -- > $ ":" "RUN: at line 1" > $ "c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\clang.exe" > "-cc1" "-internal-isystem" > "c:\b\slave\clang-x64-windows-msvc\build\build\stage1\lib\clang\9.0.0\include" > "-nostdsysteminc" "-E" > "C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c" > "-IC:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor/Inputs" > $ "c:\b\slave\clang-x64-windows-msvc\build\build\stage1\bin\filecheck.exe" > "-strict-whitespace" > "C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c" > # command stderr: > C:\b\slave\clang-x64-windows-msvc\build\llvm.src\tools\clang\test\Preprocessor\file_name_macro.c:22:11: > error: CHECK: expected string not found in input > > // CHECK: {{^}}2: "file_name_macro.c" > > ^ > > <stdin>:12:1: note: scanning from here > > 2: > "C:\\b\\slave\\clang-x64-windows-msvc\\build\\llvm.src\\tools\\clang\\test\\Preprocessor\\file_name_macro.c" > > ^ > > <stdin>:12:87: note: possible intended match here > > 2: > "C:\\b\\slave\\clang-x64-windows-msvc\\build\\llvm.src\\tools\\clang\\test\\Preprocessor\\file_name_macro.c" > > > ^ > > > error: command failed with exit status: 1 > > Douglas Yung > > -----Original Message----- > From: cfe-commits <cfe-commits-boun...@lists.llvm.org> On Behalf Of > Kristina Brooks via cfe-commits > Sent: Wednesday, May 15, 2019 17:53 > To: cfe-commits@lists.llvm.org > Subject: r360833 - [Clang][PP] Add the __FILE_NAME__ builtin macro. > > Author: kristina > Date: Wed May 15 17:52:41 2019 > New Revision: 360833 > > URL: http://llvm.org/viewvc/llvm-project?rev=360833&view=rev > Log: > [Clang][PP] Add the __FILE_NAME__ builtin macro. > > This patch adds the `__FILE_NAME__` macro that expands to the last > component of the path, similar to `__FILE__` except with a guarantee that > only the last path component (without the > separator) will be rendered. > > I intend to follow through with discussion of this with WG14 as a > potential inclusion in the C standard or failing that, try to discuss this > with GCC developers since this extension is desired by GCC and Clang > users/developers alike. > > Differential Revision: https://reviews.llvm.org/D61756 > > > Added: > cfe/trunk/test/Preprocessor/Inputs/include-subdir/ > > cfe/trunk/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h > cfe/trunk/test/Preprocessor/Inputs/include-subdir/h > cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/ > cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h > cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h > 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=360833&r1=360832&r2=360833&view=diff > > ============================================================================== > --- cfe/trunk/include/clang/Lex/Preprocessor.h (original) > +++ cfe/trunk/include/clang/Lex/Preprocessor.h Wed May 15 17:52:41 2019 > @@ -147,6 +147,7 @@ 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=360833&r1=360832&r2=360833&view=diff > > ============================================================================== > --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original) > +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Wed May 15 17:52:41 2019 > @@ -363,6 +363,7 @@ 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"); > @@ -1474,7 +1475,8 @@ 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__) { > + } else if (II == Ident__FILE__ || II == Ident__BASE_FILE__ || > + II == Ident__FILE_NAME__) { > // 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()); > @@ -1495,7 +1497,21 @@ void Preprocessor::ExpandBuiltinMacro(To > // Escape this filename. Turn '\' -> '\\' '"' -> '\"' > SmallString<128> FN; > if (PLoc.isValid()) { > - FN += PLoc.getFilename(); > + // __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('/'); > + // 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(); > + } > Lexer::Stringify(FN); > OS << '"' << FN << '"'; > } > > Added: > cfe/trunk/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h?rev=360833&view=auto > > ============================================================================== > --- > cfe/trunk/test/Preprocessor/Inputs/include-subdir/file_name_macro_include.h > (added) > +++ cfe/trunk/test/Preprocessor/Inputs/include-subdir/file_name_macro_in > +++ clude.h Wed May 15 17:52:41 2019 > @@ -0,0 +1,6 @@ > +3: __FILE_NAME__ > +4: "file_name_macro_include.h" > +#ifdef MS > +// Should be the same even when included with backslash. > +5: __FILE_NAME__ > +#endif > > Added: cfe/trunk/test/Preprocessor/Inputs/include-subdir/h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/Inputs/include-subdir/h?rev=360833&view=auto > > ============================================================================== > --- cfe/trunk/test/Preprocessor/Inputs/include-subdir/h (added) > +++ cfe/trunk/test/Preprocessor/Inputs/include-subdir/h Wed May 15 > +++ 17:52:41 2019 > @@ -0,0 +1 @@ > +6: __FILE_NAME__ > > Added: cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h?rev=360833&view=auto > > ============================================================================== > --- cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h > (added) > +++ cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr1.h Wed > +++ May 15 17:52:41 2019 > @@ -0,0 +1 @@ > +7: __FILE_NAME__ > > Added: cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h?rev=360833&view=auto > > ============================================================================== > --- cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h > (added) > +++ cfe/trunk/test/Preprocessor/Inputs/include-subdir/subdir1/hdr2.h Wed > +++ May 15 17:52:41 2019 > @@ -0,0 +1 @@ > +8: __FILE_NAME__ > > Added: cfe/trunk/test/Preprocessor/file_name_macro.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/file_name_macro.c?rev=360833&view=auto > > ============================================================================== > --- cfe/trunk/test/Preprocessor/file_name_macro.c (added) > +++ cfe/trunk/test/Preprocessor/file_name_macro.c Wed May 15 17:52:41 > +++ 2019 > @@ -0,0 +1,44 @@ > +// 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 >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits