Message ID | 20180614190419.28052-20-luc.vanoostenryck@gmail.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
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; } }
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(+)