diff mbox

[19/20] cast: accept null casts

Message ID 20180614190419.28052-20-luc.vanoostenryck@gmail.com (mailing list archive)
State Mainlined, archived
Headers show

Commit Message

Luc Van Oostenryck June 14, 2018, 7:04 p.m. UTC
Without this, casts to the same non-scalar type would be rejected
and replaced by VOID. Not good.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
---
 linearize.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox

Patch

diff --git a/linearize.c b/linearize.c
index 1bb46b345..22cf0fdde 100644
--- a/linearize.c
+++ b/linearize.c
@@ -1268,6 +1268,12 @@  static int get_cast_opcode(struct symbol *dst, struct symbol *src)
 		}
 		/* fall through */
 	default:
+		if (src->type == SYM_NODE)
+			src = src->ctype.base_type;
+		if (dst->type == SYM_NODE)
+			dst = dst->ctype.base_type;
+		if (src == dst)
+			return OP_NOP;
 		return OP_BADOP;
 	}
 }