Arnold Schwaighofer
79894ff461
Fix test/Interop with opaque pointers
2023-07-03 03:36:07 -07:00
Arnold Schwaighofer
c1a93e0bde
Move tests over to use the %use_no_opaque_pointers option
2023-06-14 10:49:48 -07:00
Alex Lorenz
196c717a3d
[interop] do not import function template with templated rvalue / perfect forwarding ref
...
they can cause compiler crashes
2023-05-04 14:41:28 -07:00
Alex Lorenz
50edc0b79b
[interop] add more specific diagnostic when rvalue reference parameter isn't imported
2023-05-03 18:29:26 -07:00
Alex Lorenz
62fd801828
[interop] C++ parameter of reference type should be imported as its pointee type in Swift even if parameter's type is type alias
...
This finally allows std::vector.push_back to be called with the pushed value directly passed into it
2023-05-03 18:23:03 -07:00
zoecarver
e05daed3b4
[cxx-interop] Disable rvalue references. We don't support them correctly (leading to lifetime issues). We are missing a consuming.
2023-05-01 23:13:33 -07:00
Alex Lorenz
9feb76419b
[interop] ignore exceptions in existing interop tests
2023-02-22 11:00:51 -08:00
zoecarver
c00c762146
[tests] Fix SILGen tests to have Windows mangling
2023-02-10 09:27:11 -08:00
Puyan Lotfi
84a69c4143
[C++-Interop] Import const &T function parameters as @in_guaranteed
...
When passing value types as a const-ref to a C++ API, ensure that the
caller is tasked with handling the lifetime of the instance passed in.
2022-09-12 16:27:27 -04:00
Daniel Rodríguez Troitiño
691dcc9bb3
Test case for const T& in Obj-C++ methods
...
Add a test case that checks the behaviour introduced during the refactor
of `importFunctionParameterList` and `importMethodParamsAndReturnType`.
The test checks that both Obj-C++ methods and C++ functions treat `const
T&` parameters in the same way.
2022-09-02 11:51:15 -07:00
zoecarver
839839f924
[cxx-interop] Rename enable-cxx-interop -> enable-experimental-cxx-interop.
...
Also removes the driver flag, this will now also always be guarded on `-Xfrontend`.
2022-04-07 19:15:25 -07:00
Zoe Carver
b681b0a503
Merge pull request #41810 from zoecarver/fix-crash-ref-to-depentent-param
2022-03-29 18:34:51 -07:00
zoecarver
16c8d0b4d3
[cxx-interop] Bail on parameter that are reference types to dependent types.
...
Currently, just like for return types, we can't import references to dependent types. Refs https://github.com/apple/swift/pull/41660 .
2022-03-29 14:58:55 -07:00
zoecarver
caf83c2375
[cxx-interop] Import const-refs as value types when importing clang function types.
...
Otherwise, it will pass the value as a poitner.
2022-03-29 11:42:57 -07:00
zoecarver
b839741d57
[cxx-interop] Support references to template types.
2022-03-04 13:54:42 -08:00
Zoe Carver
4c62dae594
Merge pull request #41660 from zoecarver/import-ref-to-dependent-type
...
[cxx-interop] Bail on dependent reference types. We don't know how to handle those yet.
2022-03-04 08:58:46 -08:00
zoecarver
5537b72c13
[cxx-interop] Bail on dependent reference types. We don't know how to handle those yet.
2022-03-03 17:15:33 -08:00
Alex Lorenz
ebb21d7ec1
[cxx-interop] Import const T& parameters as T.
...
This change allows Swift code to pass immutable values to const references in C++.
2022-03-03 14:42:27 -08:00
zoecarver
7c5b1608df
[nfc][cxx-interop] Fix regex in reference irgen test.
...
We shouldn't rely on the specific name of the operand.
2021-09-27 10:39:34 -07:00
zoecarver
7a42b71bc0
[cxx-interop] Import reference types as inout not UnsafePointer.
2021-09-23 18:10:56 -07:00
Saleem Abdulrasool
9ba7bf78db
Interop: use new target-clangxx for building C++ code
...
This enables control over the C++ flags used during testing for the C++
interop from a single location rather than having to alter all the
tests.
2021-01-12 08:29:24 -08:00
Saleem Abdulrasool
f5a08e45bc
Interop: restore -std=c++11 for a few tests
...
Restore the explicit C++ standard for these tests as the C++ compiler
invocation on Darwin uses the system compiler rather than the just built
clang, which may be sufficiently different to have different default
standards.
This will be cleaned up with the next change to introduce a new
`%target-clangxx` to control the C++ standard.
2021-01-11 11:01:44 -08:00
Saleem Abdulrasool
21732c9551
Interop: remove unnecessary C++ standard
...
Do not override the C++ standard explicitly when running the tests.
This will eventually be useful in allowing tests to run against
different C++ standards.
2021-01-11 08:57:56 -08:00
Saleem Abdulrasool
df9d1e815f
Interop/Cxx: explicitly require C++ for modules
...
The C++ interop modules require C++ support. Explicitly require C++ as
a feature when building these modules. This has no impact on the
changes as all the tests enable C++ already.
2021-01-06 16:59:42 -08:00
zoecarver
317272852b
[cxx-interop] Bail if the type a reference type is wrapping is unkown.
...
If we can't find the type a reference type is wrapping (the pointee
type), then don't import that type instead of crashing later.
2020-11-01 12:55:44 -08:00
Marcel Hlopko
8fa18a42b8
Remove -Xcc -std=c++17 ( #33449 )
2020-08-14 16:42:15 +02:00
Marcel Hlopko
e293330563
[CxxInterop] Import C++ references. ( #31784 )
2020-05-15 10:42:37 +02:00
Saleem Abdulrasool
6bf7593fd5
Revert "[CxxInterop] Import C++ references." ( #31777 )
2020-05-14 10:43:22 +02:00
Marcel Hlopko
30b5fd52e8
[CxxInterop] Import C++ references. ( #31702 )
2020-05-13 13:34:28 +02:00