aboutsummaryrefslogtreecommitdiff
path: root/lib/zig.h
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-12-04 01:52:04 -0500
committerGitHub <noreply@github.com>2022-12-04 01:52:04 -0500
commit19dd6de180275cc3f79a514b5cbc05eb9cbadb75 (patch)
tree31b74583e93ce827d36b0149e20e1c1331c1ec71 /lib/zig.h
parentf68bfe2eb70065b76e187c85a203493be5b4959e (diff)
parente3b8658e657118054fd57aa18aff281747f63ee8 (diff)
downloadzig-19dd6de180275cc3f79a514b5cbc05eb9cbadb75.tar.gz
zig-19dd6de180275cc3f79a514b5cbc05eb9cbadb75.zip
Merge pull request #13756 from jacobly0/cbe-behavior
cbe: pass more behavior tests
Diffstat (limited to 'lib/zig.h')
-rw-r--r--lib/zig.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/zig.h b/lib/zig.h
index 5a57bbda04..f827af1d5c 100644
--- a/lib/zig.h
+++ b/lib/zig.h
@@ -65,8 +65,17 @@ typedef char bool;
#elif zig_has_attribute(aligned)
#define zig_align(alignment) __attribute__((aligned(alignment)))
#elif _MSC_VER
+#define zig_align zig_align_unavailable
#else
-#error the C compiler being used does not support aligning variables
+#define zig_align zig_align_unavailable
+#endif
+
+#if zig_has_attribute(aligned)
+#define zig_align_fn(alignment) __attribute__((aligned(alignment)))
+#elif _MSC_VER
+#define zig_align_fn zig_align_fn_unavailable
+#else
+#define zig_align_fn zig_align_fn_unavailable
#endif
#if zig_has_builtin(unreachable)
@@ -81,6 +90,12 @@ typedef char bool;
#define zig_extern extern
#endif
+#if zig_has_attribute(alias)
+#define zig_export(sig, symbol, name) zig_extern sig __attribute__((alias(symbol)))
+#else
+#define zig_export(sig, symbol, name) __asm(name " = " symbol)
+#endif
+
#if zig_has_builtin(debugtrap)
#define zig_breakpoint() __builtin_debugtrap()
#elif zig_has_builtin(trap)