mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
ubsan: update wording
This commit is contained in:
parent
2447b87d98
commit
ca83f52fd9
@ -127,6 +127,7 @@ const Value = extern struct {
|
|||||||
) !void {
|
) !void {
|
||||||
comptime assert(fmt.len == 0);
|
comptime assert(fmt.len == 0);
|
||||||
|
|
||||||
|
// Work around x86_64 backend limitation.
|
||||||
if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) {
|
if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) {
|
||||||
try writer.writeAll("(unknown)");
|
try writer.writeAll("(unknown)");
|
||||||
return;
|
return;
|
||||||
@ -646,6 +647,7 @@ fn exportHandler(
|
|||||||
handler: anytype,
|
handler: anytype,
|
||||||
comptime sym_name: []const u8,
|
comptime sym_name: []const u8,
|
||||||
) void {
|
) void {
|
||||||
|
// Work around x86_64 backend limitation.
|
||||||
const linkage = if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) .internal else .weak;
|
const linkage = if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) .internal else .weak;
|
||||||
const N = "__ubsan_handle_" ++ sym_name;
|
const N = "__ubsan_handle_" ++ sym_name;
|
||||||
@export(handler, .{ .name = N, .linkage = linkage });
|
@export(handler, .{ .name = N, .linkage = linkage });
|
||||||
@ -656,6 +658,7 @@ fn exportHandlerWithAbort(
|
|||||||
abort_handler: anytype,
|
abort_handler: anytype,
|
||||||
comptime sym_name: []const u8,
|
comptime sym_name: []const u8,
|
||||||
) void {
|
) void {
|
||||||
|
// Work around x86_64 backend limitation.
|
||||||
const linkage = if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) .internal else .weak;
|
const linkage = if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) .internal else .weak;
|
||||||
{
|
{
|
||||||
const N = "__ubsan_handle_" ++ sym_name;
|
const N = "__ubsan_handle_" ++ sym_name;
|
||||||
@ -697,12 +700,12 @@ comptime {
|
|||||||
exportHandler(&missingReturn, "missing_return");
|
exportHandler(&missingReturn, "missing_return");
|
||||||
}
|
}
|
||||||
|
|
||||||
// these checks are nearly impossible to duplicate in zig, as they rely on nuances
|
// these checks are nearly impossible to replicate in zig, as they rely on nuances
|
||||||
// in the Itanium C++ ABI.
|
// in the Itanium C++ ABI.
|
||||||
// exportHelper("dynamic_type_cache_miss", "dynamic-type-cache-miss", true);
|
// exportHandlerWithAbort(&dynamicTypeCacheMiss, &dynamicTypeCacheMissAbort, "dynamic-type-cache-miss");
|
||||||
// exportHelper("vptr_type_cache", "vptr-type-cache", true);
|
// exportHandlerWithAbort(&vptrTypeCache, &vptrTypeCacheAbort, "vptr-type-cache");
|
||||||
|
|
||||||
// we disable -fsanitize=function for reasons explained in src/Compilation.zig
|
// we disable -fsanitize=function for reasons explained in src/Compilation.zig
|
||||||
// exportHelper("function-type-mismatch", "function_type_mismatch", true);
|
// exportHandlerWithAbort(&functionTypeMismatch, &functionTypeMismatchAbort, "function-type-mismatch");
|
||||||
// exportHelper("function-type-mismatch-v1", "function_type_mismatch_v1", true);
|
// exportHandlerWithAbort(&functionTypeMismatchV1, &functionTypeMismatchV1Abort, "function-type-mismatch-v1");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2049,7 +2049,8 @@ fn testLargeBss(b: *Build, opts: Options) *Step {
|
|||||||
\\}
|
\\}
|
||||||
, &.{});
|
, &.{});
|
||||||
exe.linkLibC();
|
exe.linkLibC();
|
||||||
// Disabled to work around an ELF linker bug.
|
// Disabled to work around the ELF linker crashing.
|
||||||
|
// Can be reproduced on a x86_64-linux host by commenting out the line below.
|
||||||
exe.root_module.sanitize_c = false;
|
exe.root_module.sanitize_c = false;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
@ -3554,7 +3555,8 @@ fn testTlsLargeTbss(b: *Build, opts: Options) *Step {
|
|||||||
\\}
|
\\}
|
||||||
, &.{});
|
, &.{});
|
||||||
exe.linkLibC();
|
exe.linkLibC();
|
||||||
// Disabled to work around an ELF linker bug.
|
// Disabled to work around the ELF linker crashing.
|
||||||
|
// Can be reproduced on a x86_64-linux host by commenting out the line below.
|
||||||
exe.root_module.sanitize_c = false;
|
exe.root_module.sanitize_c = false;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
|
|||||||
@ -13,7 +13,8 @@ pub fn build(b: *std.Build) void {
|
|||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
lib.entry = .disabled;
|
lib.entry = .disabled;
|
||||||
// Disabling due to self-hosted wasm linker bug.
|
// Disabled to work around the Wasm linker crashing.
|
||||||
|
// Can be reproduced by commenting out the line below.
|
||||||
lib.bundle_ubsan_rt = false;
|
lib.bundle_ubsan_rt = false;
|
||||||
lib.use_lld = false;
|
lib.use_lld = false;
|
||||||
lib.root_module.export_symbol_names = &.{ "foo", "bar" };
|
lib.root_module.export_symbol_names = &.{ "foo", "bar" };
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user