| ... | @@ -1966,7 +1966,7 @@ pub const Object = struct { | ... | @@ -1966,7 +1966,7 @@ pub const Object = struct { |
| 1966 | | 1966 | |
| 1967 | for (tuple.types) |field_ty, i| { | 1967 | for (tuple.types) |field_ty, i| { |
| 1968 | const field_val = tuple.values[i]; | 1968 | const field_val = tuple.values[i]; |
| 1969 | if (field_val.tag() != .unreachable_value) continue; | 1969 | if (field_val.tag() != .unreachable_value or !field_ty.hasRuntimeBits()) continue; |
| 1970 | | 1970 | |
| 1971 | const field_size = field_ty.abiSize(target); | 1971 | const field_size = field_ty.abiSize(target); |
| 1972 | const field_align = field_ty.abiAlignment(target); | 1972 | const field_align = field_ty.abiAlignment(target); |
| ... | @@ -2901,7 +2901,7 @@ pub const DeclGen = struct { | ... | @@ -2901,7 +2901,7 @@ pub const DeclGen = struct { |
| 2901 | | 2901 | |
| 2902 | for (tuple.types) |field_ty, i| { | 2902 | for (tuple.types) |field_ty, i| { |
| 2903 | const field_val = tuple.values[i]; | 2903 | const field_val = tuple.values[i]; |
| 2904 | if (field_val.tag() != .unreachable_value) continue; | 2904 | if (field_val.tag() != .unreachable_value or !field_ty.hasRuntimeBits()) continue; |
| 2905 | | 2905 | |
| 2906 | const field_align = field_ty.abiAlignment(target); | 2906 | const field_align = field_ty.abiAlignment(target); |
| 2907 | big_align = @max(big_align, field_align); | 2907 | big_align = @max(big_align, field_align); |
| ... | @@ -10207,7 +10207,7 @@ fn llvmFieldIndex( | ... | @@ -10207,7 +10207,7 @@ fn llvmFieldIndex( |
| 10207 | const tuple = ty.tupleFields(); | 10207 | const tuple = ty.tupleFields(); |
| 10208 | var llvm_field_index: c_uint = 0; | 10208 | var llvm_field_index: c_uint = 0; |
| 10209 | for (tuple.types) |field_ty, i| { | 10209 | for (tuple.types) |field_ty, i| { |
| 10210 | if (tuple.values[i].tag() != .unreachable_value) continue; | 10210 | if (tuple.values[i].tag() != .unreachable_value or !field_ty.hasRuntimeBits()) continue; |
| 10211 | | 10211 | |
| 10212 | const field_align = field_ty.abiAlignment(target); | 10212 | const field_align = field_ty.abiAlignment(target); |
| 10213 | big_align = @max(big_align, field_align); | 10213 | big_align = @max(big_align, field_align); |
| ... | @@ -10771,7 +10771,7 @@ fn isByRef(ty: Type) bool { | ... | @@ -10771,7 +10771,7 @@ fn isByRef(ty: Type) bool { |
| 10771 | const tuple = ty.tupleFields(); | 10771 | const tuple = ty.tupleFields(); |
| 10772 | var count: usize = 0; | 10772 | var count: usize = 0; |
| 10773 | for (tuple.values) |field_val, i| { | 10773 | for (tuple.values) |field_val, i| { |
| 10774 | if (field_val.tag() != .unreachable_value) continue; | 10774 | if (field_val.tag() != .unreachable_value or !tuple.types[i].hasRuntimeBits()) continue; |
| 10775 | | 10775 | |
| 10776 | count += 1; | 10776 | count += 1; |
| 10777 | if (count > max_fields_byval) return true; | 10777 | if (count > max_fields_byval) return true; |