@@ -1866,8 +1866,8 @@ void to_c_copy__trivial(TranslationUnit& c_tu,
1866
1866
Param (" rhs" , rhs, 1 )};
1867
1867
auto c_function = NodeFunction::n (
1868
1868
function_name, PLACEHOLDER_ID, attrs, " " ,
1869
- NodeBuiltinType::n (" void" , 0 , " void" , false ), std::move (params), " " , " " , " " ,
1870
- std::vector<NodeTypePtr>{}, std::vector<Exception>{}, false );
1869
+ NodeBuiltinType::n (" void" , 0 , " void" , false ), std::move (params), " " , " " ,
1870
+ " " , std::vector<NodeTypePtr>{}, std::vector<Exception>{}, false );
1871
1871
1872
1872
c_function->body = c_function_body;
1873
1873
c_function->private_ = true ;
@@ -2167,7 +2167,10 @@ void to_c_copy__constructor(TranslationUnit& c_tu, const NodeRecord& cpp_record,
2167
2167
// ------------------------------------------------------------------------------
2168
2168
void to_c_move (TranslationUnit& c_tu, const NodeRecord& cpp_record,
2169
2169
const NodeRecord& c_record) {
2170
- auto rhs = NodeRecordType::n (" " , 0 , cpp_record.name , cpp_record.id , false );
2170
+ auto rhs_inner =
2171
+ NodeRecordType::n (" " , 0 , cpp_record.name , cpp_record.id , false );
2172
+ auto rhs =
2173
+ NodePointerType::n (PointerKind::Pointer, std::move (rhs_inner), false );
2171
2174
2172
2175
auto c_return =
2173
2176
NodeRecordType::n (" " , 0 , c_record.nice_name , c_record.id , false );
@@ -2176,12 +2179,13 @@ void to_c_move(TranslationUnit& c_tu, const NodeRecord& cpp_record,
2176
2179
NodeBlockExpr::n (std::vector<NodeExprPtr>{NodePlacementNewExpr::n (
2177
2180
NodeVarRefExpr::n (" lhs" ),
2178
2181
2179
- NodeFunctionCallExpr::n (cpp_record.name ,
2180
- std::vector<NodeExprPtr>{NodeMoveExpr::n (
2181
- NodeVarRefExpr::n (" rhs" ))},
2182
- std::vector<NodeTypePtr>{}
2182
+ NodeFunctionCallExpr::n (
2183
+ cpp_record.name ,
2184
+ std::vector<NodeExprPtr>{
2185
+ NodeMoveExpr::n (NodeDerefExpr::n (NodeVarRefExpr::n (" rhs" )))},
2186
+ std::vector<NodeTypePtr>{}
2183
2187
2184
- ))});
2188
+ ))});
2185
2189
2186
2190
auto lhs =
2187
2191
NodePointerType::n (PointerKind::Pointer, std::move (c_return), false );
0 commit comments