[all-commits] [llvm/llvm-project] ee8ed0: [clang][deps] Teach dep directive scanner about _P...
Ben Langmuir via All-commits
all-commits at lists.llvm.org
Tue May 9 10:31:17 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: ee8ed0b3099e63ba0a18cca42b9cfdf098bc6201
https://github.com/llvm/llvm-project/commit/ee8ed0b3099e63ba0a18cca42b9cfdf098bc6201
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2023-05-09 (Tue, 09 May 2023)
Changed paths:
M clang/include/clang/Lex/Pragma.h
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/lib/Lex/Pragma.cpp
A clang/test/ClangScanDeps/_Pragma-once.c
M clang/unittests/Lex/DependencyDirectivesScannerTest.cpp
Log Message:
-----------
[clang][deps] Teach dep directive scanner about _Pragma
While we cannot handle `_Pragma` used inside macros, we can handle
this at the top level, and it some projects use the `_Pragma("once")`
spelling like that, which was causing spurious failures in the scanner.
Limitations
* Cannot handle #define ONCE _Pragma("once"), same issue as using
@import in a macro -- ideally we should diagnose this in obvious cases
* Our LangOpts are currently fixed, so we are not handling u"" strings
or R"()" strings that require C11/C++11.
rdar://108629982
Differential Revision: https://reviews.llvm.org/D149884
More information about the All-commits
mailing list