summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
authorAlexey Panteleev <alpanteleev@nvidia.com>2022-05-17 15:05:44 -0700
committerGitHub <noreply@github.com>2022-05-17 15:05:44 -0700
commitd9fd0ff3f0fc7b775de1e05570f01798fbc8baa3 (patch)
tree87943f11f924e3ae3713dc034312b925250ee5bb /source/slang/slang.cpp
parent05c4c2679ae979cfcb61e4c2acdb432c34384ddb (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.cpp39
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;