diff options
| author | Alexey Panteleev <alpanteleev@nvidia.com> | 2022-05-17 15:05:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-17 15:05:44 -0700 |
| commit | d9fd0ff3f0fc7b775de1e05570f01798fbc8baa3 (patch) | |
| tree | 87943f11f924e3ae3713dc034312b925250ee5bb /source/slang/slang.cpp | |
| parent | 05c4c2679ae979cfcb61e4c2acdb432c34384ddb (diff) | |
Configuration for warnings (#2241)
* Added support for disabling specific warnings or turning them into errors.
* Added API entry points for adding diagnostic severity overrides and manipulating some sink flags.
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 3a180027a..7ce3594e5 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -4248,6 +4248,45 @@ void EndToEndCompileRequest::setTargetLineDirectiveMode( getLinkage()->targets[targetIndex]->setLineDirectiveMode(LineDirectiveMode(mode)); } +void EndToEndCompileRequest::overrideDiagnosticSeverity( + SlangInt messageID, + SlangSeverity overrideSeverity) +{ + getSink()->overrideDiagnosticSeverity(int(messageID), Severity(overrideSeverity)); +} + +SlangDiagnosticFlags EndToEndCompileRequest::getDiagnosticFlags() +{ + DiagnosticSink::Flags sinkFlags = getSink()->getFlags(); + + SlangDiagnosticFlags flags = 0; + + if (sinkFlags & DiagnosticSink::Flag::VerbosePath) + flags |= SLANG_DIAGNOSTIC_FLAG_VERBOSE_PATHS; + + if (sinkFlags & DiagnosticSink::Flag::TreatWarningsAsErrors) + flags |= SLANG_DIAGNOSTIC_FLAG_TREAT_WARNINGS_AS_ERRORS; + + return flags; +} + +void EndToEndCompileRequest::setDiagnosticFlags(SlangDiagnosticFlags flags) +{ + DiagnosticSink::Flags sinkFlags = getSink()->getFlags(); + + if (flags & SLANG_DIAGNOSTIC_FLAG_VERBOSE_PATHS) + sinkFlags |= DiagnosticSink::Flag::VerbosePath; + else + sinkFlags &= ~DiagnosticSink::Flag::VerbosePath; + + if (flags & SLANG_DIAGNOSTIC_FLAG_TREAT_WARNINGS_AS_ERRORS) + sinkFlags |= DiagnosticSink::Flag::TreatWarningsAsErrors; + else + sinkFlags &= ~DiagnosticSink::Flag::TreatWarningsAsErrors; + + getSink()->setFlags(sinkFlags); +} + SlangResult EndToEndCompileRequest::addTargetCapability(SlangInt targetIndex, SlangCapabilityID capability) { auto& targets = getLinkage()->targets; |
