Skip unnamed bitfield in descend_into_subtype() and advance_current_object().
[cparser] / main.c
diff --git a/main.c b/main.c
index 9d989ad..3aa815b 100644 (file)
--- a/main.c
+++ b/main.c
@@ -950,16 +950,19 @@ static void init_types_and_adjust(void)
                set_typeprops_type(&props[ATOMIC_TYPE_LONGLONG], type_long_long);
 
        ir_type *type_unsigned_long_long = be_params->type_unsigned_long_long;
-       if (type_long_long != NULL)
+       if (type_unsigned_long_long != NULL)
                set_typeprops_type(&props[ATOMIC_TYPE_ULONGLONG], type_unsigned_long_long);
 
        /* operating system ABI specifics */
        const char *os = target_machine->operating_system;
        if (is_darwin_os(os)) {
                if (machine_size == 32) {
-                       props[ATOMIC_TYPE_DOUBLE].struct_alignment = 4;
-                       props[ATOMIC_TYPE_LONG_DOUBLE].size        = 16;
-                       props[ATOMIC_TYPE_LONG_DOUBLE].alignment   = 16;
+                       props[ATOMIC_TYPE_LONGLONG].struct_alignment    =  4;
+                       props[ATOMIC_TYPE_ULONGLONG].struct_alignment   =  4;
+                       props[ATOMIC_TYPE_DOUBLE].struct_alignment      =  4;
+                       props[ATOMIC_TYPE_LONG_DOUBLE].size             = 16;
+                       props[ATOMIC_TYPE_LONG_DOUBLE].alignment        = 16;
+                       props[ATOMIC_TYPE_LONG_DOUBLE].struct_alignment = 16;
                }
        } else if (is_windows_os(os)) {
                if (machine_size == 64) {