aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-09-23 18:31:55 +0200
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-09-23 18:31:55 +0200
commit2a0096bc0c6057577f10d6343063d9eca76cbdea (patch)
tree9423a7e57b7915017254fd8c19d22e2fa5c508a3 /test
parent9d1867bfa7814b3eb0a017638d79fc694289ba61 (diff)
downloadcompcert-kvx-2a0096bc0c6057577f10d6343063d9eca76cbdea.tar.gz
compcert-kvx-2a0096bc0c6057577f10d6343063d9eca76cbdea.zip
union passing
Diffstat (limited to 'test')
-rw-r--r--test/regression/union_passing.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/regression/union_passing.c b/test/regression/union_passing.c
new file mode 100644
index 00000000..b0ce6319
--- /dev/null
+++ b/test/regression/union_passing.c
@@ -0,0 +1,23 @@
+#include <stdint.h>
+#include <stdio.h>
+static int32_t bk;
+union ba {
+ int64_t bb;
+};
+static void dada(union ba);
+void nothing(void);
+void stuff(void) {
+ union ba f = {5};
+ int32_t i[1000];
+ nothing();
+ dada(f);
+}
+static void dada(union ba k) {
+ bk = k.bb;
+}
+void nothing(void) {
+}
+int main() {
+ stuff();
+ printf("result = %d\n", bk);
+}