IRGen/SIL: Fix IR linkage computation for inlined function references from modules imported @_weakLinked.

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
This commit is contained in:
Allan Shortlidge
2022-08-12 16:56:05 -07:00
parent df66f2777e
commit 40eb1422bb
17 changed files with 112 additions and 70 deletions

View File

@@ -58,7 +58,7 @@ const uint16_t SWIFTMODULE_VERSION_MAJOR = 0;
/// describe what change you made. The content of this comment isn't important;
/// it just ensures a conflict if two people change the module format.
/// Don't worry about adhering to the 80-column limit for this line.
const uint16_t SWIFTMODULE_VERSION_MINOR = 701; // opened archetype serialization
const uint16_t SWIFTMODULE_VERSION_MINOR = 702; // SILFunction DeclCtxt
/// A standard hash seed used for all string hashes in a serialized module.
///