From 45dcb68af047cdbd1d0467b82b07578cf2d981ae Mon Sep 17 00:00:00 2001 From: Egor Zhdan Date: Wed, 3 Sep 2025 16:21:55 +0100 Subject: [PATCH] [cxx-interop] Test initializing foreign reference type when passed by parameter This only adds a test. --- .../Cxx/foreign-reference/Inputs/pass-as-parameter.h | 4 ++++ .../pass-as-parameter-module-interface.swift | 2 ++ test/Interop/Cxx/foreign-reference/pass-as-parameter.swift | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/test/Interop/Cxx/foreign-reference/Inputs/pass-as-parameter.h b/test/Interop/Cxx/foreign-reference/Inputs/pass-as-parameter.h index c8221af076a95..b6375d354d034 100644 --- a/test/Interop/Cxx/foreign-reference/Inputs/pass-as-parameter.h +++ b/test/Interop/Cxx/foreign-reference/Inputs/pass-as-parameter.h @@ -14,3 +14,7 @@ inline int extractValueFromRefToPtr(IntBox *&b) { return b->value; } inline int extractValueFromRefToConstPtr(IntBox const *&b) { return b->value; } inline int extractValueFromConstRefToPtr(IntBox *const &b) { return b->value; } inline int extractValueFromConstRefToConstPtr(IntBox const *const &b) { return b->value; } + +inline void initializeByPtr(int value, IntBox **b) { + *b = IntBox::create(value); +} diff --git a/test/Interop/Cxx/foreign-reference/pass-as-parameter-module-interface.swift b/test/Interop/Cxx/foreign-reference/pass-as-parameter-module-interface.swift index f71ea0c581338..b202258289692 100644 --- a/test/Interop/Cxx/foreign-reference/pass-as-parameter-module-interface.swift +++ b/test/Interop/Cxx/foreign-reference/pass-as-parameter-module-interface.swift @@ -7,3 +7,5 @@ // CHECK: func extractValueFromRefToConstPtr(_ b: inout IntBox!) -> Int32 // CHECK: func extractValueFromConstRefToPtr(_ b: IntBox!) -> Int32 // CHECK: func extractValueFromConstRefToConstPtr(_ b: IntBox!) -> Int32 + +// CHECK: func initializeByPtr(_ value: Int32, _ b: UnsafeMutablePointer!) diff --git a/test/Interop/Cxx/foreign-reference/pass-as-parameter.swift b/test/Interop/Cxx/foreign-reference/pass-as-parameter.swift index 7e4ff5d3ddbd2..09f7c934121df 100644 --- a/test/Interop/Cxx/foreign-reference/pass-as-parameter.swift +++ b/test/Interop/Cxx/foreign-reference/pass-as-parameter.swift @@ -53,4 +53,10 @@ PassAsParameterTestSuite.test("pass as const reference to const pointer") { expectEqual(aValue, 789) } +PassAsParameterTestSuite.test("initialize by pointer") { + var a: IntBox! + initializeByPtr(987, &a) + expectEqual(a.value, 987) +} + runAllTests()