Commits

Slava Pestov committed d8e1e2e289a
SILOptimizer: Fixes for non-fragile references in fragile functions Two fixes to optimization passes to maintain restrictions about what [fragile] functions can reference: - When devirtualizing witness methods, don't devirtualize if the caller is fragile and the callee is not. This matches existing logic in class devirtualization. - When performing generic or function signature specialization, don't specialize non-fragile functions referenced from fragile functions. Since @_transparent functions are allowed to call 'static inline' imported functions, also be sure to mark the foreign-to-native thunk for such a function as [fragile]. With this patch, the standard library and performance test suite now build with -enable-resilience. No new tests for this stuff here -- the existing tests together with an -enable-resilience build provide coverage. Closes out <https://bugs.swift.org/browse/SR-267> and <https://bugs.swift.org/browse/SR-268>.