File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1979,9 +1979,18 @@ bool Converter::VisitImplicitCastExpr(clang::ImplicitCastExpr *expr) {
19791979 Convert (sub_expr);
19801980 break ;
19811981 }
1982- Convert (sub_expr);
19831982 bool dest_pointee_const =
19841983 expr->getType ()->getPointeeType ().isConstQualified ();
1984+ if (const auto *member =
1985+ clang::dyn_cast<clang::MemberExpr>(sub_expr->IgnoreParenImpCasts ());
1986+ member && IsCharArrayFieldFromLibc (member->getMemberDecl ())) {
1987+ PushParen paren (*this );
1988+ Convert (sub_expr);
1989+ StrCat (dest_pointee_const ? " .as_ptr()" : " .as_mut_ptr()" );
1990+ StrCat (keyword::kAs , dest_pointee_const ? " *const u8" : " *mut u8" );
1991+ break ;
1992+ }
1993+ Convert (sub_expr);
19851994 if (clang::isa<clang::StringLiteral>(sub_expr) ||
19861995 clang::isa<clang::PredefinedExpr>(sub_expr)) {
19871996 StrCat (" .as_ptr()" );
You can’t perform that action at this time.
0 commit comments