| ... | @@ -811,13 +811,10 @@ fn transRecordDecl(c: *Context, record_decl: *const ZigClangRecordDecl) Error!?* | ... | @@ -811,13 +811,10 @@ fn transRecordDecl(c: *Context, record_decl: *const ZigClangRecordDecl) Error!?* |
| 811 | | 811 | |
| 812 | var is_anon = false; | 812 | var is_anon = false; |
| 813 | var raw_name = try c.str(ZigClangNamedDecl_getName_bytes_begin(@ptrCast(*const ZigClangNamedDecl, field_decl))); | 813 | var raw_name = try c.str(ZigClangNamedDecl_getName_bytes_begin(@ptrCast(*const ZigClangNamedDecl, field_decl))); |
| 814 | if (ZigClangFieldDecl_isAnonymousStructOrUnion(field_decl)) { | 814 | if (ZigClangFieldDecl_isAnonymousStructOrUnion(field_decl) or (std.Target.current.abi == .msvc and raw_name.len == 0)) { |
| 815 | raw_name = try std.fmt.allocPrint(c.a(), "unnamed_{}", .{c.getMangle()}); | 815 | raw_name = try std.fmt.allocPrint(c.a(), "unnamed_{}", .{c.getMangle()}); |
| 816 | is_anon = true; | 816 | is_anon = true; |
| 817 | } | 817 | } |
| 818 | if (raw_name.len == 0) { | | |
| 819 | continue; | | |
| 820 | } | | |
| 821 | const field_name = try appendIdentifier(c, raw_name); | 818 | const field_name = try appendIdentifier(c, raw_name); |
| 822 | _ = try appendToken(c, .Colon, ":"); | 819 | _ = try appendToken(c, .Colon, ":"); |
| 823 | const field_type = transQualType(rp, field_qt, field_loc) catch |err| switch (err) { | 820 | const field_type = transQualType(rp, field_qt, field_loc) catch |err| switch (err) { |