diff --git a/x86_64-gen.c b/x86_64-gen.c index d837a1d..90c8247 100644 --- a/x86_64-gen.c +++ b/x86_64-gen.c @@ -1066,12 +1066,8 @@ static X86_64_Mode classify_x86_64_inner(CType *ty) case VT_STRUCT: f = ty->ref; - // Detect union - if (f->next && (f->c == f->next->c)) - return x86_64_mode_memory; - mode = x86_64_mode_none; - for (; f; f = f->next) + for (f = f->next; f; f = f->next) mode = classify_x86_64_merge(mode, classify_x86_64_inner(&f->type)); return mode;