aboutsummaryrefslogtreecommitdiff
path: root/stage1/zig.h
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-03-31 01:47:23 -0700
committerGitHub <noreply@github.com>2024-03-31 01:47:23 -0700
commita6ed3e6d29b0e2cedfc20048b014cff4e0ae4eaa (patch)
tree11b933e936d64f00a7a820a21afe2633b34d5941 /stage1/zig.h
parentaff71c6132fd17c6fa455a6e7b9f53567e3e55b2 (diff)
parente5ba70bb5c176ba553a5458f89004b44da2b93d6 (diff)
downloadzig-a6ed3e6d29b0e2cedfc20048b014cff4e0ae4eaa.tar.gz
zig-a6ed3e6d29b0e2cedfc20048b014cff4e0ae4eaa.zip
Merge pull request #19470 from jacobly0/field-parent-ptr
Rework `@fieldParentPtr` to use RLS
Diffstat (limited to 'stage1/zig.h')
-rw-r--r--stage1/zig.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/stage1/zig.h b/stage1/zig.h
index 7a1c69575a..ec7508670d 100644
--- a/stage1/zig.h
+++ b/stage1/zig.h
@@ -130,22 +130,18 @@ typedef char bool;
#define zig_restrict
#endif
-#if __STDC_VERSION__ >= 201112L
-#define zig_align(alignment) _Alignas(alignment)
-#elif zig_has_attribute(aligned)
-#define zig_align(alignment) __attribute__((aligned(alignment)))
+#if zig_has_attribute(aligned)
+#define zig_under_align(alignment) __attribute__((aligned(alignment)))
#elif _MSC_VER
-#define zig_align(alignment) __declspec(align(alignment))
+#define zig_under_align(alignment) __declspec(align(alignment))
#else
-#define zig_align zig_align_unavailable
+#define zig_under_align zig_align_unavailable
#endif
-#if zig_has_attribute(aligned)
-#define zig_under_align(alignment) __attribute__((aligned(alignment)))
-#elif _MSC_VER
-#define zig_under_align(alignment) zig_align(alignment)
+#if __STDC_VERSION__ >= 201112L
+#define zig_align(alignment) _Alignas(alignment)
#else
-#define zig_align zig_align_unavailable
+#define zig_align(alignment) zig_under_align(alignment)
#endif
#if zig_has_attribute(aligned)
@@ -165,11 +161,14 @@ typedef char bool;
#endif
#if zig_has_attribute(section)
-#define zig_linksection(name, def, ...) def __attribute__((section(name)))
+#define zig_linksection(name) __attribute__((section(name)))
+#define zig_linksection_fn zig_linksection
#elif _MSC_VER
-#define zig_linksection(name, def, ...) __pragma(section(name, __VA_ARGS__)) __declspec(allocate(name)) def
+#define zig_linksection(name) __pragma(section(name, read, write)) __declspec(allocate(name))
+#define zig_linksection_fn(name) __pragma(section(name, read, execute)) __declspec(code_seg(name))
#else
-#define zig_linksection(name, def, ...) zig_linksection_unavailable
+#define zig_linksection(name) zig_linksection_unavailable
+#define zig_linksection_fn zig_linksection
#endif
#if zig_has_builtin(unreachable) || defined(zig_gnuc)