Alex Lorenz
85a431eedf
[interop][SwiftToCxx] ensure swift::Int and swift::UInt are usable in generic context
...
Fixes https://github.com/apple/swift/issues/63452
2023-07-12 12:47:49 -07:00
Alex Lorenz
0dc90d38c1
[interop][SwiftToCxx] emit Swift's stdlib inside of 'swift' namespace
2023-03-09 17:32:43 -08:00
Alex Lorenz
3948a2a5d3
[interop][SwiftToCxx] annotate inline thunks with SWIFT_INLINE_THUNK
...
This macro applies always_inline in addition to inline. It also applies artificial, which lets debugger know that this is an artificial function. The used attribute is added in debug builds to ensure that the symbol is emitted in the binary so that LLDB can invoke it.
2023-02-24 11:23:46 -08:00
Alex Lorenz
327b989e84
[interop][SwiftToCxx] NFC, refactor printKnownCType method to ClangSyntaxPrinter for reuse
2023-02-13 10:30:25 -08:00
Alex Lorenz
5371414398
Merge pull request #62197 from Robertorosmaninho/cxx-interop/DynamicCastToSwiftErrorWithOptional
...
[Interop] [SwiftToCxx] Modify the swift::Error Dynamic Cast to return a Swift::Optional
2022-11-29 15:50:31 -08:00
Erik Eckstein
ab1b343dad
use new llvm::Optional API
...
`getValue` -> `value`
`getValueOr` -> `value_or`
`hasValue` -> `has_value`
`map` -> `transform`
The old API will be deprecated in the rebranch.
To avoid merge conflicts, use the new API already in the main branch.
rdar://102362022
2022-11-21 19:44:24 +01:00
Roberto Rosmaninho
fdc1d0ce90
[Interop][SwiftToCxx] Erasing NaiveException call and result on core test
2022-11-18 22:16:00 -03:00
Roberto Rosmaninho
c6e6f7553b
[Interop][SwiftToCxx] Deleting unnecessary NaiveException
2022-11-18 22:16:00 -03:00
Alex Lorenz
4b52ae08fa
[interop][SwiftToCxx] check that generics can be built in C++17/C++14 mode
2022-11-01 16:40:42 -07:00
Alex Lorenz
e98d908ff5
Merge pull request #60858 from Robertorosmaninho/cxx-interop/SwiftToCxxErrorHandling
...
[SwiftToCxx] Including Cxx representation of Swift's Error
2022-09-07 08:55:27 -07:00
Alex Lorenz
ef5d11aab8
[interop][SwiftToCxx] NFC, Make swift::getTypeMetadata accessor part of struct template
...
This allows partial template specializations for adding metadata accessor for generic types 🤩
2022-08-31 17:16:45 -07:00
Roberto Rosmaninho
17ae63592f
[SwiftToCxx] Implementing the Swift Error representation in C++
2022-08-30 14:14:21 -03:00
Alex Lorenz
c537cd2383
[interop][SwiftToCxx] NFC, move swift::_impl::OpaqueStorage into _SwiftCxxInteroperability shims header
2022-08-09 13:57:34 -07:00
Alex Lorenz
9ff7f94865
[interop][SwiftToCxx] NFC, move generic traits declarations to shims header
2022-07-29 13:59:04 +01:00
Alex Lorenz
567bb850cc
[interop][SwiftToCxx] add _SwiftCxxInteroperability.h shims header and import it for C++ header mode
2022-07-29 08:54:27 +01:00
Alex Lorenz
32723f7e67
[interop][SwiftToCxx] initial generic function support: pass generic parameters
...
Only primitive types are supported at the moment from C++ as the type traits aren't emitted for all types yet
2022-07-28 22:52:21 +01:00
Roberto Rosmaninho
b15c6a5537
Implementing a naive exception to be thrown in C++ if an Error is thrown in Swift
...
Creating new Interop - SwiftToCxx test
2022-07-15 20:14:13 -03:00
Alex Lorenz
f49e26ee37
[interop][SwiftToCxx] mark value witness table functions as noexcept
...
This is only supported in C++17, so C++14 mode will still not be noexcept
2022-07-14 15:42:27 +01:00
Alex Lorenz
12f6d970b7
[interop][SwiftToCxx] mark the alloc/free heap allocation functions as noexcept
2022-07-14 15:16:07 +01:00
Tongjie Wang
7ebcb7b33a
[Interop][SwiftToCxx] Implement enum case switching
2022-06-30 22:41:15 -07:00
Alex Lorenz
0c909c2f26
Merge pull request #59482 from hyp/eng/emit-resilient-structs
...
[interop][SwiftToCxx] Add support for emitting resilient struct bindings
2022-06-16 20:20:52 -07:00
Alex Lorenz
b8ee625f77
[interop][SwiftToCxx] fix aligned allocation refs
2022-06-16 14:14:40 -07:00
Alex Lorenz
5c3b4ca1da
[interop][SwiftToCxx] annotate OpaqueStorage with noexcept
2022-06-15 21:56:25 -07:00
Alex Lorenz
61e484c410
[interop][SwiftToCxx] correctly align allocation for opaque Swift value
2022-06-15 21:47:39 -07:00
Alex Lorenz
f577330b40
[interop][SwiftToCxx] fix copy constructor for resilient structs
2022-06-15 20:56:42 -07:00
Alex Lorenz
5474d7e54d
[interop][SwiftToCxx] Add support for emitting resilient struct bindings
2022-06-15 20:33:23 -07:00
Alex Lorenz
0d5c138821
[interop][SwiftToCxx] place ptrauth attribute on the function type itself for value witness function types
...
Fixes rdar://95224817
2022-06-15 16:07:19 -07:00
Alex Lorenz
a65ddbe997
[interop][SwiftToCxx] print out value witness table definition in swift::_impl
2022-06-13 14:26:25 -07:00
Alex Lorenz
9254c47b2c
[interop][SwiftToCxx] emit swift type metadata access function declaration for structs
2022-06-13 09:16:17 -07:00