Skip to content

Commit a15127f

Browse files
committed
Handle string literalt to char* conversion
1 parent 2165500 commit a15127f

3 files changed

Lines changed: 8 additions & 1 deletion

File tree

‎cpp2rust/converter/converter.cpp‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1756,6 +1756,9 @@ bool Converter::VisitImplicitCastExpr(clang::ImplicitCastExpr *expr) {
17561756
}
17571757
case clang::CastKind::CK_NoOp: {
17581758
Convert(sub_expr);
1759+
if (IsConversionFromStringLiteralToCharPtr(expr)) {
1760+
StrCat(".cast_mut()");
1761+
}
17591762
break;
17601763
}
17611764
case clang::CastKind::CK_FunctionToPointerDecay:

‎cpp2rust/converter/converter_lib.h‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,5 +170,4 @@ void Unwrap(std::string &s, std::string_view prefix, std::string_view suffix);
170170

171171
std::string ReplaceAll(std::string str, std::string_view from,
172172
std::string_view to);
173-
174173
} // namespace cpp2rust

‎cpp2rust/converter/models/converter_refcount.cpp‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,11 @@ bool ConverterRefCount::VisitImplicitCastExpr(clang::ImplicitCastExpr *expr) {
10351035
return false;
10361036
}
10371037

1038+
if (expr->getCastKind() == clang::CastKind::CK_NoOp) {
1039+
Convert(sub_expr);
1040+
return false;
1041+
}
1042+
10381043
return Converter::VisitImplicitCastExpr(expr);
10391044
}
10401045

0 commit comments

Comments
 (0)