diff options
Diffstat (limited to 'source/compiler-core/slang-diagnostic-sink.cpp')
| -rw-r--r-- | source/compiler-core/slang-diagnostic-sink.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/compiler-core/slang-diagnostic-sink.cpp b/source/compiler-core/slang-diagnostic-sink.cpp index f9a7d9c88..28a98266a 100644 --- a/source/compiler-core/slang-diagnostic-sink.cpp +++ b/source/compiler-core/slang-diagnostic-sink.cpp @@ -612,10 +612,20 @@ bool DiagnosticSink::diagnoseImpl( return true; } -Severity DiagnosticSink::getEffectiveMessageSeverity(DiagnosticInfo const& info) +Severity DiagnosticSink::getEffectiveMessageSeverity( + DiagnosticInfo const& info, + SourceLoc const& location) { Severity effectiveSeverity = info.severity; + if (effectiveSeverity <= Severity::Warning && m_sourceWarningStateTracker) + { + effectiveSeverity = m_sourceWarningStateTracker->consumeWarningSeverity( + location, + info.id, + effectiveSeverity); + } + Severity* pSeverityOverride = m_severityOverrides.tryGetValue(info.id); // See if there is an override @@ -639,7 +649,7 @@ bool DiagnosticSink::diagnoseImpl( DiagnosticArg const* args) { // Override the severity in the 'info' structure to pass it further into formatDiagnostics - info.severity = getEffectiveMessageSeverity(info); + info.severity = getEffectiveMessageSeverity(info, pos); if (info.severity == Severity::Disable) return false; |
