mirror of
https://github.com/apple/swift.git
synced 2026-06-20 15:42:51 +02:00
12b6809813
Passing a C++ object to the TSanInOutAccess builtin resulted in an extra temporary copy. This copy was not optimized out because the semantics of this builtin was not understood by the optimizer. Teaching the utils that this intrinsic does not actually modify the object, does not escape it, and does not read it lets the optimizer eliminate this copy. Strictly speaking, the test code that uses interop is not safe/correct, this is why it had a lifetime issue. rdar://173921363
9 lines
181 B
Plaintext
9 lines
181 B
Plaintext
module CXXTypesWithUserProvidedDestructor {
|
|
header "CXXTypesWithUserProvidedDestructor.h"
|
|
}
|
|
|
|
module TsanCxxWitnessCopy {
|
|
header "tsan_cxx_witness_copy.h"
|
|
requires cplusplus
|
|
}
|