Add more sanitizers
This commit is contained in:
@@ -46,6 +46,16 @@ namespace Flax.Build.NativeCpp
|
|||||||
/// Data races and deadlocks detector.
|
/// Data races and deadlocks detector.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Thread = 2,
|
Thread = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Uninitialized memory reads detector.
|
||||||
|
/// </summary>
|
||||||
|
Memory = 4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Undefined behavior (UB) detector.
|
||||||
|
/// </summary>
|
||||||
|
Undefined = 8,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -182,18 +182,5 @@ namespace Flax.Build
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Utility that outputs the arguments for Clang with specific sanitizer.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="options">The sanitizers as flags.</param>
|
|
||||||
/// <param name="options">The arguments list.</param>
|
|
||||||
protected void AddClangSanitizerArgs(Sanitizer sanitizers, List<string> args)
|
|
||||||
{
|
|
||||||
if (sanitizers.HasFlag(Sanitizer.Address))
|
|
||||||
args.Add("-fsanitize=address");
|
|
||||||
if (sanitizers.HasFlag(Sanitizer.Thread))
|
|
||||||
args.Add("-fsanitize=thread");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ namespace Flax.Build.Platforms
|
|||||||
commonArgs.Add("objective-c++");
|
commonArgs.Add("objective-c++");
|
||||||
commonArgs.Add("-stdlib=libc++");
|
commonArgs.Add("-stdlib=libc++");
|
||||||
AddArgsCommon(options, commonArgs);
|
AddArgsCommon(options, commonArgs);
|
||||||
AddClangSanitizerArgs(compileEnvironment.Sanitizers, commonArgs);
|
AddArgsSanitizer(compileEnvironment.Sanitizers, commonArgs);
|
||||||
|
|
||||||
switch (compileEnvironment.CppVersion)
|
switch (compileEnvironment.CppVersion)
|
||||||
{
|
{
|
||||||
@@ -251,7 +251,7 @@ namespace Flax.Build.Platforms
|
|||||||
{
|
{
|
||||||
args.Add(string.Format("-o \"{0}\"", outputFilePath));
|
args.Add(string.Format("-o \"{0}\"", outputFilePath));
|
||||||
AddArgsCommon(options, args);
|
AddArgsCommon(options, args);
|
||||||
AddClangSanitizerArgs(options.CompileEnv.Sanitizers, args);
|
AddArgsSanitizer(options.CompileEnv.Sanitizers, args);
|
||||||
|
|
||||||
if (isArchive)
|
if (isArchive)
|
||||||
{
|
{
|
||||||
@@ -438,5 +438,15 @@ namespace Flax.Build.Platforms
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void AddArgsSanitizer(Sanitizer sanitizers, List<string> 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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user