Commit ca83f52fd9

David Rubin <daviru007@icloud.com>
2025-02-24 12:49:45
ubsan: update wording
1 parent 2447b87
Changed files (3)
lib
test
link
wasm
export-data
lib/ubsan_rt.zig
@@ -127,6 +127,7 @@ const Value = extern struct {
     ) !void {
         comptime assert(fmt.len == 0);
 
+        // Work around x86_64 backend limitation.
         if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .windows) {
             try writer.writeAll("(unknown)");
             return;
@@ -646,6 +647,7 @@ fn exportHandler(
     handler: anytype,
     comptime sym_name: []const u8,
 ) 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 N = "__ubsan_handle_" ++ sym_name;
     @export(handler, .{ .name = N, .linkage = linkage });
@@ -656,6 +658,7 @@ fn exportHandlerWithAbort(
     abort_handler: anytype,
     comptime sym_name: []const u8,
 ) 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 N = "__ubsan_handle_" ++ sym_name;
@@ -697,12 +700,12 @@ comptime {
         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.
-    // exportHelper("dynamic_type_cache_miss", "dynamic-type-cache-miss", true);
-    // exportHelper("vptr_type_cache", "vptr-type-cache", true);
+    // exportHandlerWithAbort(&dynamicTypeCacheMiss, &dynamicTypeCacheMissAbort, "dynamic-type-cache-miss");
+    // exportHandlerWithAbort(&vptrTypeCache, &vptrTypeCacheAbort, "vptr-type-cache");
 
     // we disable -fsanitize=function for reasons explained in src/Compilation.zig
-    // exportHelper("function-type-mismatch", "function_type_mismatch", true);
-    // exportHelper("function-type-mismatch-v1", "function_type_mismatch_v1", true);
+    // exportHandlerWithAbort(&functionTypeMismatch, &functionTypeMismatchAbort, "function-type-mismatch");
+    // exportHandlerWithAbort(&functionTypeMismatchV1, &functionTypeMismatchV1Abort, "function-type-mismatch-v1");
 }
test/link/wasm/export-data/build.zig
@@ -13,7 +13,8 @@ pub fn build(b: *std.Build) void {
         }),
     });
     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.use_lld = false;
     lib.root_module.export_symbol_names = &.{ "foo", "bar" };
test/link/elf.zig
@@ -2049,7 +2049,8 @@ fn testLargeBss(b: *Build, opts: Options) *Step {
         \\}
     , &.{});
     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;
 
     const run = addRunArtifact(exe);
@@ -3554,7 +3555,8 @@ fn testTlsLargeTbss(b: *Build, opts: Options) *Step {
         \\}
     , &.{});
     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;
 
     const run = addRunArtifact(exe);