@@ -73,16 +73,6 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags,
73
73
else
74
74
Diags.setExtensionHandlingBehavior (diag::Severity::Ignored);
75
75
76
- if (!Opts.DiagnosticSuppressionMappingsFile .empty ()) {
77
- if (auto FileContents =
78
- VFS.getBufferForFile (Opts.DiagnosticSuppressionMappingsFile )) {
79
- Diags.setDiagSuppressionMapping (**FileContents);
80
- } else if (ReportDiags) {
81
- Diags.Report (diag::err_drv_no_such_file)
82
- << Opts.DiagnosticSuppressionMappingsFile ;
83
- }
84
- }
85
-
86
76
SmallVector<diag::kind, 10 > _Diags;
87
77
const IntrusiveRefCntPtr< DiagnosticIDs > DiagIDs =
88
78
Diags.getDiagnosticIDs ();
@@ -237,4 +227,17 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags,
237
227
}
238
228
}
239
229
}
230
+
231
+ // Process suppression mappings file after processing other warning flags
232
+ // (like -Wno-unknown-warning-option) as we can emit extra warnings during
233
+ // processing.
234
+ if (!Opts.DiagnosticSuppressionMappingsFile .empty ()) {
235
+ if (auto FileContents =
236
+ VFS.getBufferForFile (Opts.DiagnosticSuppressionMappingsFile )) {
237
+ Diags.setDiagSuppressionMapping (**FileContents);
238
+ } else if (ReportDiags) {
239
+ Diags.Report (diag::err_drv_no_such_file)
240
+ << Opts.DiagnosticSuppressionMappingsFile ;
241
+ }
242
+ }
240
243
}
0 commit comments