@@ -1966,7 +1966,7 @@ pub const Object = struct {
1966
1966
1967
1967
for (tuple .types ) | field_ty , i | {
1968
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
1971
const field_size = field_ty .abiSize (target );
1972
1972
const field_align = field_ty .abiAlignment (target );
@@ -2901,7 +2901,7 @@ pub const DeclGen = struct {
2901
2901
2902
2902
for (tuple .types ) | field_ty , i | {
2903
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
2906
const field_align = field_ty .abiAlignment (target );
2907
2907
big_align = @max (big_align , field_align );
@@ -10207,7 +10207,7 @@ fn llvmFieldIndex(
10207
10207
const tuple = ty .tupleFields ();
10208
10208
var llvm_field_index : c_uint = 0 ;
10209
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
10212
const field_align = field_ty .abiAlignment (target );
10213
10213
big_align = @max (big_align , field_align );
@@ -10771,7 +10771,7 @@ fn isByRef(ty: Type) bool {
10771
10771
const tuple = ty .tupleFields ();
10772
10772
var count : usize = 0 ;
10773
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
10776
count += 1 ;
10777
10777
if (count > max_fields_byval ) return true ;
0 commit comments