Commit Graph

6 Commits

Author SHA1 Message Date
Saleem Abdulrasool
afd0b69a8c test: get most of the multifile tests working on Windows
We cannot link against the DSO (dll) on Windows and instead link against
the import library.  Let the driver understand this and use the standard
linking technique.  Adjust the name of the emitted files accordingly and
use the `%target-library-name` macro more freely.

Two tests remain:
- multifile.protocol-conformance-member
    The getter is synthesized by not exported so `llvm-nm` is unable to
    see it
- multifile.nested_types
    Windows uses the singleton strategy, so the emitted full type
    metadata does not have the reference to the value witness table for
    Void
2018-12-25 11:26:53 -08:00
Saleem Abdulrasool
b212229db1 test: add and use prefix substitutions for libraries
The naming convention is different on Windows than on Unix-like
environments.  In order to follow the convention we need to substitute
the prefix and the suffix.  Take the opportunity to rename the
`target-dylib-extension` to the CMake-like variable
`target-shared-library-suffix` and introduce
`target-shared-library-prefix`.  This helps linking the test suite
binaries on Windows.
2018-12-11 15:56:06 -08:00
Slava Pestov
31ab93b82c Remove Swift 3-specific tests 2018-07-02 21:14:22 -07:00
Slava Pestov
e1f50b2d36 SE-0193: Rename @_inlineable to @inlinable, @_versioned to @usableFromInline 2018-03-30 21:55:30 -07:00
Slava Pestov
7dc7a1fc4c Serialization: When deserializing a SIL function in the merge-modules step, update linkage
Consider a module with two files, one of which references a
function in the other file. If the function had PublicNonABI
linkage, the forward reference has HiddenExternal linkage.

If we saw the forward reference first in the merge modules
process, we would not update the linkage of the function
when we later deserialized its body.

This would result in it being dropped from the final merged
SIL module. Previously this did not cause any problems
because all inlineable functions had public linkage, but now
that default argument generators no longer have public entry
points, this could cause linker errors.
2018-01-21 01:31:44 -08:00
Slava Pestov
bfe24472ea SIL: Use PublicNonABI linkage for default argument generators in Swift 4 mode
Fixes <rdar://problem/33767513>, <https://bugs.swift.org/browse/SR-5647>.
2018-01-14 22:59:41 -08:00