Commit Graph

25 Commits

Author SHA1 Message Date
Roberto Rosmaninho
fdc1d0ce90 [Interop][SwiftToCxx] Erasing NaiveException call and result on core test 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
3a9b6dce9d [interop][SwiftToCxx] add support for emitting Swift stdlib dependency in one header file
This is the default behavior. You can disable this by specifying the -clang-header-expose-decls= flag explicitly when generating the header
2022-09-28 08:08:48 -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
Tongjie Wang
ae73a03ec0 Merge branch 'main' into fix-value-witness-table-type 2022-08-18 09:57:57 -07:00
Alex Lorenz
c537cd2383 [interop][SwiftToCxx] NFC, move swift::_impl::OpaqueStorage into _SwiftCxxInteroperability shims header 2022-08-09 13:57:34 -07:00
Tongjie Wang
d34e086c79 Change return type of getEnumTag in value witness table
make it actually matches the description above
2022-08-04 18:41:16 -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