aboutsummaryrefslogtreecommitdiff
path: root/2025-linuxdays/transunionf.c
diff options
context:
space:
mode:
Diffstat (limited to '2025-linuxdays/transunionf.c')
-rw-r--r--2025-linuxdays/transunionf.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/2025-linuxdays/transunionf.c b/2025-linuxdays/transunionf.c
new file mode 100644
index 0000000..e210194
--- /dev/null
+++ b/2025-linuxdays/transunionf.c
@@ -0,0 +1,15 @@
+#include <stdint.h>
+#include <stdio.h>
+
+union [[gnu::transparent_union]] un {
+ char *ptr;
+ intptr_t i;
+};
+
+void call(void (*cb)(union un)) { cb("FOO"); }
+void cb(char *str) { printf("%s\n", str); }
+
+int main(int argc, char *argv[]) {
+ call(cb);
+ return 0;
+}