Commit Graph

8 Commits

Author SHA1 Message Date
Michael Gottesman
cfe7b69451 Disable moveonly_split_module_source_deinit.swift on arm64e
rdar://110424902
2023-06-30 13:17:15 -07:00
Arnold Schwaighofer
c012196e0f Fix some tests for armv7k 2023-06-23 08:41:17 -07:00
Erik Eckstein
3239400645 convert some IRGen tests to opaque pointers 2023-06-23 06:57:38 -07:00
Arnold Schwaighofer
90c7193651 More IRGen test to move over 2023-06-14 10:49:50 -07:00
Michael Gottesman
2488f1966d [move-only] Make test 32 bit friendly.
rdar://110059596
2023-06-07 18:25:34 -04:00
Michael Gottesman
dcc246b37f [move-only] Add a call to indirectCleanup to make sure that we call llvm.lifetime.end when we emit a call to a deinit via the value witness table. 2023-06-05 03:45:52 -07:00
Michael Gottesman
a52302d384 Some misc fixes for tests. 2023-05-27 23:29:56 -07:00
Michael Gottesman
8579c1924d [move-only] Make sure that we serialize deinits and if we are not able to see the value witness function, call it via the value witness function.
Some notes:

1. I put in both a swiftpm like test case and a library evolution test case. I
also updated the moveonly_deinit serialization swift test to show that we
actually serialize the deinit.

2. I changed when we emit the deinit table to only be when we have a type with
an actual value type destructor. Notably this doesn't include classes today so
as a side-effect, we no longer attempt to devirtualize moveonly class deinits.
This doesn't affect anything we are trying to actually do since we do not
support noncopyable classes today. With that in mind, I changed one test that
was showing that deinit devirtualization worked to use a struct with deinit
instead of a class.

rdar://109679168
2023-05-27 22:07:04 -07:00