   @usableFromInline // c-abi
   internal var storage: ContiguousArray<Int>
 
+  @usableFromInline // c-abi
+  internal var retainer = [CVarArg]()
+
   @inlinable // c-abi
   internal init() {
     // prepare the register save area


  @inlinable // c-abi
  internal func append(_ arg: CVarArg) {
    var encoded = arg._cVarArgEncoding

#if arch(x86_64) || arch(arm64)


  @inlinable // c-abi
  internal func append(_ arg: CVarArg) {
    var arg = arg

    // We may need to retain an object that provides a pointer value.
    if let obj = arg as? _CVarArgObject {
      arg = obj._cVarArgObject
      retainer.append(arg)
    }

    // Write alignment padding if necessary.
    // This is needed on architectures where the ABI alignment of some
    // supported vararg type is greater than the alignment of Int, such
