c: Add support for __FILE_NAME__ macro (PR c/42579)
The toolchain provided by ST for stm32 has had support for __FILENAME__ for a while, but clang/llvm has recently implemented support for __FILE_NAME__, so it seems better to use the same macro name in GCC. It happens that the ST patch is similar to the one proposed in PR c/42579. Given these input files: :::::::::::::: mydir/myinc.h :::::::::::::: char* mystringh_file = __FILE__; char* mystringh_filename = __FILE_NAME__; char* mystringh_base_file = __BASE_FILE__; :::::::::::::: mydir/mysrc.c :::::::::::::: char* mystring_file = __FILE__; char* mystring_filename = __FILE_NAME__; char* mystring_base_file = __BASE_FILE__; we produce: $ gcc mydir/mysrc.c -I . -E char* mystringh_file = "./mydir/myinc.h"; char* mystringh_filename = "myinc.h"; char* mystringh_base_file = "mydir/mysrc.c"; char* mystring_file = "mydir/mysrc.c"; char* mystring_filename = "mysrc.c"; char* mystring_base_file = "mydir/mysrc.c"; 2021-05-20 Christophe Lyon <christophe.lyon@linaro.org> Torbjörn Svensson <torbjorn.svensson@st.com> PR c/42579 libcpp/ * include/cpplib.h (cpp_builtin_type): Add BT_FILE_NAME entry. * init.c (builtin_array): Likewise. * macro.c (_cpp_builtin_macro_text): Add support for BT_FILE_NAME. gcc/ * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__. gcc/testsuite/ * c-c++-common/spellcheck-reserved.c: Add tests for __FILE_NAME__. * c-c++-common/cpp/file-name-1.c: New test.
Showing
- gcc/doc/cpp.texi 7 additions, 0 deletionsgcc/doc/cpp.texi
- gcc/testsuite/c-c++-common/cpp/file-name-1.c 22 additions, 0 deletionsgcc/testsuite/c-c++-common/cpp/file-name-1.c
- gcc/testsuite/c-c++-common/spellcheck-reserved.c 18 additions, 0 deletionsgcc/testsuite/c-c++-common/spellcheck-reserved.c
- libcpp/include/cpplib.h 1 addition, 0 deletionslibcpp/include/cpplib.h
- libcpp/init.c 1 addition, 0 deletionslibcpp/init.c
- libcpp/macro.c 10 additions, 4 deletionslibcpp/macro.c
Loading
Please register or sign in to comment