| ... | ... | @@ -1692,3 +1692,24 @@ test "packed union field pointer has correct alignment" { |
| 1692 | 1692 | try expectEqual(@as(u20, 456), bp.*); |
| 1693 | 1693 | try expectEqual(@as(u20, 789), cp.*); |
| 1694 | 1694 | } |
| 1695 | |
| 1696 | test "union with 128 bit integer" { |
| 1697 | const ValueTag = enum { int, other }; |
| 1698 | |
| 1699 | const Value3 = union(ValueTag) { |
| 1700 | int: i128, |
| 1701 | other: bool, |
| 1702 | }; |
| 1703 | var values: [2]Value3 = undefined; |
| 1704 | values[0] = .{ .int = 3 }; |
| 1705 | values[1] = .{ .int = 4 }; |
| 1706 | |
| 1707 | var ok: usize = 0; |
| 1708 | |
| 1709 | for (values) |val| { |
| 1710 | switch (val) { |
| 1711 | .int => ok += 1, |
| 1712 | else => return error.TestFailed, |
| 1713 | } |
| 1714 | } |
| 1715 | } |