Skip to content

Commit 450c5ad

Browse files
committed
[clang][deps] Skip writing DIAG_PRAGMA_MAPPINGS record
1 parent 51af040 commit 450c5ad

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

clang/include/clang/Lex/HeaderSearchOptions.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,11 @@ class HeaderSearchOptions {
247247
LLVM_PREFERRED_TYPE(bool)
248248
unsigned ModulesSkipHeaderSearchPaths : 1;
249249

250+
/// Whether to entirely skip writing pragma diagnostic mappings.
251+
/// Primarily used to speed up deserialization during dependency scanning.
252+
LLVM_PREFERRED_TYPE(bool)
253+
unsigned ModulesSkipPragmaDiagnosticMappings : 1;
254+
250255
LLVM_PREFERRED_TYPE(bool)
251256
unsigned ModulesHashContent : 1;
252257

@@ -270,7 +275,8 @@ class HeaderSearchOptions {
270275
ForceCheckCXX20ModulesInputFiles(false), UseDebugInfo(false),
271276
ModulesValidateDiagnosticOptions(true),
272277
ModulesSkipDiagnosticOptions(false),
273-
ModulesSkipHeaderSearchPaths(false), ModulesHashContent(false),
278+
ModulesSkipHeaderSearchPaths(false),
279+
ModulesSkipPragmaDiagnosticMappings(false), ModulesHashContent(false),
274280
ModulesStrictContextHash(false) {}
275281

276282
/// AddPath - Add the \p Path path to the specified \p Group list.

clang/lib/Serialization/ASTWriter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,8 +1261,8 @@ void ASTWriter::writeUnhashedControlBlock(Preprocessor &PP,
12611261
Stream.EmitRecord(HEADER_SEARCH_PATHS, Record);
12621262
}
12631263

1264-
// Write out the diagnostic/pragma mappings.
1265-
WritePragmaDiagnosticMappings(Diags, /* isModule = */ WritingModule);
1264+
if (!HSOpts.ModulesSkipPragmaDiagnosticMappings)
1265+
WritePragmaDiagnosticMappings(Diags, /* isModule = */ WritingModule);
12661266

12671267
// Header search entry usage.
12681268
auto HSEntryUsage = PP.getHeaderSearchInfo().computeUserEntryUsage();

clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,8 @@ class DependencyScanningAction : public tooling::ToolAction {
255255
ScanInstance.getHeaderSearchOpts().ModulesStrictContextHash = true;
256256
ScanInstance.getHeaderSearchOpts().ModulesSkipDiagnosticOptions = true;
257257
ScanInstance.getHeaderSearchOpts().ModulesSkipHeaderSearchPaths = true;
258+
ScanInstance.getHeaderSearchOpts().ModulesSkipPragmaDiagnosticMappings =
259+
true;
258260

259261
// Avoid some checks and module map parsing when loading PCM files.
260262
ScanInstance.getPreprocessorOpts().ModulesCheckRelocated = false;

0 commit comments

Comments
 (0)