Commit c01d8c8b20
Changed files (4)
lib/std/Build/Step/Compile.zig
@@ -211,6 +211,8 @@ is_linking_libc: bool = false,
/// Computed during make().
is_linking_libcpp: bool = false,
+no_builtin: bool = false,
+
pub const ExpectedCompileErrors = union(enum) {
contains: []const u8,
exact: []const []const u8,
@@ -1572,6 +1574,10 @@ fn make(step: *Step, prog_node: std.Progress.Node) !void {
}
}
+ if (compile.no_builtin) {
+ try zig_args.append("-fno-builtin");
+ }
+
if (b.sysroot) |sysroot| {
try zig_args.appendSlice(&[_][]const u8{ "--sysroot", sysroot });
}
src/codegen/llvm.zig
@@ -3115,8 +3115,7 @@ pub const Object = struct {
try variable_index.setInitializer(try o.lowerValue(decl_val), &o.builder);
variable_index.setLinkage(.internal, &o.builder);
- const llvm_miscompiles_const_anon = o.module.getTarget().isDarwin();
- if (!llvm_miscompiles_const_anon) variable_index.setMutability(.constant, &o.builder);
+ variable_index.setMutability(.constant, &o.builder);
variable_index.setUnnamedAddr(.unnamed_addr, &o.builder);
variable_index.setAlignment(alignment.toLlvm(), &o.builder);
return variable_index;
test/tests.zig
@@ -984,6 +984,7 @@ const ModuleTestOptions = struct {
skip_non_native: bool,
skip_libc: bool,
max_rss: usize = 0,
+ no_builtin: bool = false,
};
pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
@@ -1070,6 +1071,7 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
.pic = test_target.pic,
.strip = test_target.strip,
});
+ if (options.no_builtin) these_tests.no_builtin = true;
const single_threaded_suffix = if (test_target.single_threaded == true) "-single" else "";
const backend_suffix = if (test_target.use_llvm == true)
"-llvm"
build.zig
@@ -489,6 +489,7 @@ pub fn build(b: *std.Build) !void {
.skip_single_threaded = true,
.skip_non_native = skip_non_native,
.skip_libc = true,
+ .no_builtin = true,
}));
test_step.dependOn(tests.addModuleTests(b, .{
@@ -501,6 +502,7 @@ pub fn build(b: *std.Build) !void {
.skip_single_threaded = true,
.skip_non_native = skip_non_native,
.skip_libc = true,
+ .no_builtin = true,
}));
test_step.dependOn(tests.addCompareOutputTests(b, test_filters, optimization_modes));