diff --git a/oberon.c b/oberon.c
index 2b4e09f5e8a3ca7e95e4923a6d4773fa9e5202bf..bd5498bbccc06ee9a4ac7ff684ca9f2532149bf9 100644 (file)
--- a/oberon.c
+++ b/oberon.c
@@ -653,6 +653,14 @@ oberon_autocast_to(oberon_context_t * ctx, oberon_expr_t * expr, oberon_type_t *
oberon_error(ctx, "incompatible size");
}
}
+ else if(pref -> class == OBERON_TYPE_RECORD)
+ {
+ if(expr -> result != pref)
+ {
+ printf("oberon_autocast_to: rec %p != %p\n", expr -> result, pref);
+ oberon_error(ctx, "incompatible record types");
+ }
+ }
// TODO cast