aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-02-24 08:25:23 +0100
committerGitHub <noreply@github.com>2025-02-24 08:25:23 +0100
commitecc76348e6858f00b920d8dc9e44a6e703d8e497 (patch)
tree018e151e85958c8e1b12328865e8b18398956b5e /src/codegen/c.zig
parent76558f8c6b8361ab520ea77e4b4cd2bfc8f688ad (diff)
parente11ac026623f8d0f4895cddd6a9bf3c03a866c6d (diff)
downloadzig-ecc76348e6858f00b920d8dc9e44a6e703d8e497.tar.gz
zig-ecc76348e6858f00b920d8dc9e44a6e703d8e497.zip
Merge pull request #22154 from alexrp/disable-intrinsics
compiler: Implement `@disableIntrinsics()` builtin function.
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index 5012f7e0e8..cd4573375d 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -1859,8 +1859,17 @@ pub const DeclGen = struct {
else => unreachable,
}
}
- if (fn_val.getFunction(zcu)) |func| if (func.analysisUnordered(ip).branch_hint == .cold)
- try w.writeAll("zig_cold ");
+
+ if (fn_val.getFunction(zcu)) |func| {
+ const func_analysis = func.analysisUnordered(ip);
+
+ if (func_analysis.branch_hint == .cold)
+ try w.writeAll("zig_cold ");
+
+ if (kind == .complete and func_analysis.disable_intrinsics or dg.mod.no_builtin)
+ try w.writeAll("zig_no_builtin ");
+ }
+
if (fn_info.return_type == .noreturn_type) try w.writeAll("zig_noreturn ");
var trailing = try renderTypePrefix(dg.pass, &dg.ctype_pool, zcu, w, fn_ctype, .suffix, .{});