aboutsummaryrefslogtreecommitdiff
path: root/src/target.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-07-21 13:07:27 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-07-21 13:55:29 -0700
commitfc6e111b76764ae00e2c868ad46f39235837e239 (patch)
treebde27d8b548e01d17a3fac8cfb61abbc396f68ba /src/target.zig
parentb9469345761bbac5dcb95f2ba662d4ddd7fc567e (diff)
downloadzig-fc6e111b76764ae00e2c868ad46f39235837e239.tar.gz
zig-fc6e111b76764ae00e2c868ad46f39235837e239.zip
Sema: improve compile error for bad function alignment
* Integrate more declaratively with src/target.zig * Only trigger the check when a function body is found, do not trigger for function types.
Diffstat (limited to 'src/target.zig')
-rw-r--r--src/target.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/target.zig b/src/target.zig
index ea8b3efc45..5202fb15fc 100644
--- a/src/target.zig
+++ b/src/target.zig
@@ -744,6 +744,7 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 {
}
}
+/// This function returns 1 if function alignment is not observable or settable.
pub fn defaultFunctionAlignment(target: std.Target) u32 {
return switch (target.cpu.arch) {
.arm, .armeb => 4,
@@ -753,3 +754,10 @@ pub fn defaultFunctionAlignment(target: std.Target) u32 {
else => 1,
};
}
+
+pub fn supportsFunctionAlignment(target: std.Target) bool {
+ return switch (target.cpu.arch) {
+ .wasm32, .wasm64 => false,
+ else => true,
+ };
+}