mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Include the parent `ModuleDecl` when serializing a `SILFunction` so that it is available on deserialized functions even though the full `DeclContext` is not present. With the parent module always available we can reliably compute whether the `SILFunction` comes from a module that was imported `@_weakLinked`. Serialize the `DeclContext` member of `SILFunction` so that it can be used to look up the module that a function belongs to in order to compute weak import status. Resolves rdar://98521248
21 lines
893 B
Swift
21 lines
893 B
Swift
// RUN: %empty-directory(%t)
|
|
//
|
|
// RUN: %target-swift-frontend -emit-module -emit-module-path %t/weaklinked_import_helper.swiftmodule -parse-as-library %S/Inputs/weaklinked_import_helper.swift -enable-library-evolution
|
|
//
|
|
// RUN: echo '@_weakLinked import weaklinked_import_helper' > %t/intermediate.swift
|
|
// RUN: %target-swift-frontend -emit-module -emit-module-path %t/intermediate.swiftmodule -parse-as-library %t/intermediate.swift -I %t -enable-library-evolution
|
|
//
|
|
// RUN: %target-swift-frontend -primary-file %s -I %t -emit-ir | %FileCheck %s
|
|
|
|
// UNSUPPORTED: OS=windows-msvc
|
|
|
|
import intermediate
|
|
import weaklinked_import_helper
|
|
|
|
// The `@_weakLinked` attribute on the import of `weaklinked_import_helper` in
|
|
// the module `intermediate` should not apply transitively to the import from
|
|
// this module.
|
|
|
|
// CHECK-DAG: declare swiftcc {{.+}} @"$s24weaklinked_import_helper2fnyyF"()
|
|
fn()
|