swift
23ddaafd - Fix MemoryLifetimeVerifier to ignore thin functions.

Commit
1 year ago
Fix MemoryLifetimeVerifier to ignore thin functions. SILGen optimizes creation of closure down a thin function when it has no captures: %1 = thin_to_thick_function %0 : $@convention(thin) () -> () to $@callee_guaranteed () -> () ValueOwnership.cpp has a sketchy optimization that treat the result like a trivial type, even though it is not: > CONSTANT_OWNERSHIP_INST(None, ThinToThickFunction) commit 8c5737d1d5f87d6d2379e6b074797557561e82aa Date: Fri Oct 23 15:12:18 2020 -0700 [ownership] Change thin_to_thick function to always produce a none value. This creates a mismatch between the SILType and the SILValue ownership. This is not a coherent design--we have a similar problem with enums which is endlessly buggy--but reverting the decision will be hard. Instead, I'll hack the memory verifier to silence this case. Fixes rdar://115735132 (Lifetime verifier error with opaque return type and closure)
Author
Committer
Parents
Loading