diff --git a/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs b/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs
index 8b1d461c1..eac85e17e 100644
--- a/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs
+++ b/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs
@@ -46,6 +46,16 @@ namespace Flax.Build.NativeCpp
/// Data races and deadlocks detector.
///
Thread = 2,
+
+ ///
+ /// Uninitialized memory reads detector.
+ ///
+ Memory = 4,
+
+ ///
+ /// Undefined behavior (UB) detector.
+ ///
+ Undefined = 8,
}
///
diff --git a/Source/Tools/Flax.Build/Build/Toolchain.cs b/Source/Tools/Flax.Build/Build/Toolchain.cs
index 553e80032..6d90dc850 100644
--- a/Source/Tools/Flax.Build/Build/Toolchain.cs
+++ b/Source/Tools/Flax.Build/Build/Toolchain.cs
@@ -182,18 +182,5 @@ namespace Flax.Build
}
return true;
}
-
- ///
- /// Utility that outputs the arguments for Clang with specific sanitizer.
- ///
- /// The sanitizers as flags.
- /// The arguments list.
- protected void AddClangSanitizerArgs(Sanitizer sanitizers, List args)
- {
- if (sanitizers.HasFlag(Sanitizer.Address))
- args.Add("-fsanitize=address");
- if (sanitizers.HasFlag(Sanitizer.Thread))
- args.Add("-fsanitize=thread");
- }
}
}
diff --git a/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs b/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs
index c3c96b035..8461d6aac 100644
--- a/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs
+++ b/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs
@@ -105,7 +105,7 @@ namespace Flax.Build.Platforms
commonArgs.Add("objective-c++");
commonArgs.Add("-stdlib=libc++");
AddArgsCommon(options, commonArgs);
- AddClangSanitizerArgs(compileEnvironment.Sanitizers, commonArgs);
+ AddArgsSanitizer(compileEnvironment.Sanitizers, commonArgs);
switch (compileEnvironment.CppVersion)
{
@@ -251,7 +251,7 @@ namespace Flax.Build.Platforms
{
args.Add(string.Format("-o \"{0}\"", outputFilePath));
AddArgsCommon(options, args);
- AddClangSanitizerArgs(options.CompileEnv.Sanitizers, args);
+ AddArgsSanitizer(options.CompileEnv.Sanitizers, args);
if (isArchive)
{
@@ -438,5 +438,15 @@ namespace Flax.Build.Platforms
break;
}
}
+
+ protected void AddArgsSanitizer(Sanitizer sanitizers, List args)
+ {
+ if (sanitizers.HasFlag(Sanitizer.Address))
+ args.Add("-fsanitize=address");
+ if (sanitizers.HasFlag(Sanitizer.Thread))
+ args.Add("-fsanitize=thread");
+ if (sanitizers.HasFlag(Sanitizer.Undefined))
+ args.Add("-fsanitize=undefined");
+ }
}
}