[clang] [clang] Allow trivial pp-directives before C++ module directive (PR #153641)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 15 06:40:55 PDT 2025
================
@@ -1682,3 +1688,31 @@ const char *Preprocessor::getCheckPoint(FileID FID, const char *Start) const {
return nullptr;
}
+
+bool Preprocessor::hasSeenNoTrivialPPDirective() const {
+ return DirTracer && DirTracer->hasSeenNoTrivialPPDirective();
+}
+
+bool TrivialPPDirectiveTracer::hasSeenNoTrivialPPDirective() const {
+ return SeenNoTrivialPPDirective;
+}
+
+void TrivialPPDirectiveTracer::setSeenNoTrivialPPDirective() {
+ if (InMainFile && !SeenNoTrivialPPDirective)
+ SeenNoTrivialPPDirective = true;
+}
+
+void TrivialPPDirectiveTracer::LexedFileChanged(
+ FileID FID, LexedFileChangeReason Reason,
+ SrcMgr::CharacteristicKind FileType, FileID PrevFID, SourceLocation Loc) {
+ InMainFile = FID == PP.getSourceManager().getMainFileID();
----------------
erichkeane wrote:
```suggestion
InMainFile = (FID == PP.getSourceManager().getMainFileID());
```
Reading order of ops can be painful :)
https://github.com/llvm/llvm-project/pull/153641
More information about the cfe-commits
mailing list