summary refs log tree commit diff
path: root/rv64
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-03-08 15:49:01 +0100
committerQuentin Carbonneaux <quentin@c9x.me>2022-03-08 15:57:06 +0100
commit9060981c10c21834596d5677a2c9ccc56809eb64 (patch)
tree2fe18c42b4c435a15612abdc4ce836d5860cdfa2 /rv64
parent349794f3e4f11e4cc34a501ba935a2a305229738 (diff)
downloadroux-9060981c10c21834596d5677a2c9ccc56809eb64.tar.gz
flag types defined as unions
The risc-v abi needs to know if a
type is defined as a union or not.

We cannot use nunion to obtain this
information because the risc-v abi
made the unfortunate decision of
treating

	union { int i; }

differently from

	int i;

So, instead, I introduce a single
bit flag 'isunion'.
Diffstat (limited to 'rv64')
-rw-r--r--rv64/abi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rv64/abi.c b/rv64/abi.c
index 05deabe..b49057b 100644
--- a/rv64/abi.c
+++ b/rv64/abi.c
@@ -105,7 +105,7 @@ typclass(Class *c, Typ *t, int *gp, int *fp)
 	if (t->align > 4)
 		err("alignments larger than 16 are not supported");
 
-	if (t->dark || sz > 16 || sz == 0) {
+	if (t->isdark || sz > 16 || sz == 0) {
 		/* large structs are replaced by a
 		 * pointer to some caller-allocated
 		 * memory */