mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
To determine whether an instruction may require pack metadata, the types of its operands are examined. Previously, the top level type was checked for having a pack in its signature, and the whole type was checked for having a type anywhere in its layout (via TypeLowering). This didn't account for the case where the metadata was required for a resilient type which uses a pack in its signature. Here, during type lowering, a type having a pack in its signature is counted towards the type having a pack. Fixes a compiler crash. rdar://147207926