File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2007,15 +2007,6 @@ bool Converter::VisitImplicitCastExpr(clang::ImplicitCastExpr *expr) {
20072007 }
20082008 bool dest_pointee_const =
20092009 expr->getType ()->getPointeeType ().isConstQualified ();
2010- if (const auto *member =
2011- clang::dyn_cast<clang::MemberExpr>(sub_expr->IgnoreParenImpCasts ());
2012- member && IsCharArrayFieldFromLibc (member->getMemberDecl ())) {
2013- PushParen paren (*this );
2014- Convert (sub_expr);
2015- StrCat (dest_pointee_const ? " .as_ptr()" : " .as_mut_ptr()" );
2016- StrCat (keyword::kAs , dest_pointee_const ? " *const u8" : " *mut u8" );
2017- break ;
2018- }
20192010 Convert (sub_expr);
20202011 if (clang::isa<clang::StringLiteral>(sub_expr) ||
20212012 clang::isa<clang::PredefinedExpr>(sub_expr)) {
@@ -2703,16 +2694,6 @@ bool Converter::VisitMemberExpr(clang::MemberExpr *expr) {
27032694 return false ;
27042695 }
27052696
2706- // char* fields in libc structs are *mut i8. We represent char* as *mut u8. Do
2707- // the i8 -> u8 conversion here.
2708- if (IsCharPointerFieldFromLibc (member)) {
2709- StrCat (std::format (" ({} as {})" , str,
2710- member->getType ()->getPointeeType ().isConstQualified ()
2711- ? " *const u8"
2712- : " *mut u8" ));
2713- return false ;
2714- }
2715-
27162697 StrCat (str);
27172698 return false ;
27182699}
Original file line number Diff line number Diff line change @@ -129,26 +129,6 @@ bool IsInMainFile(const clang::Decl *decl) {
129129 return src_mgr.isInMainFile (src_mgr.getExpansionLoc (loc));
130130}
131131
132- bool IsCharPointerFieldFromLibc (const clang::ValueDecl *decl) {
133- auto field = clang::dyn_cast<clang::FieldDecl>(decl);
134- if (!field || !field->getType ()->isPointerType () ||
135- !field->getType ()->getPointeeType ()->isCharType ()) {
136- return false ;
137- }
138- return field->getASTContext ().getSourceManager ().isInSystemHeader (
139- field->getParent ()->getLocation ());
140- }
141-
142- bool IsCharArrayFieldFromLibc (const clang::ValueDecl *decl) {
143- auto field = clang::dyn_cast<clang::FieldDecl>(decl);
144- if (!field || !field->getType ()->isArrayType () ||
145- !field->getType ()->getArrayElementTypeNoTypeQual ()->isCharType ()) {
146- return false ;
147- }
148- return field->getASTContext ().getSourceManager ().isInSystemHeader (
149- field->getParent ()->getLocation ());
150- }
151-
152132bool IsUserDefinedDecl (const clang::Decl *decl) {
153133 const auto &ctx = decl->getASTContext ();
154134 const auto &src_mgr = ctx.getSourceManager ();
Original file line number Diff line number Diff line change @@ -39,10 +39,6 @@ bool IsComparisonWithNullOp(const clang::BinaryOperator *expr);
3939
4040bool IsInMainFile (const clang::Decl *decl);
4141
42- bool IsCharPointerFieldFromLibc (const clang::ValueDecl *decl);
43-
44- bool IsCharArrayFieldFromLibc (const clang::ValueDecl *decl);
45-
4642bool IsUserDefinedDecl (const clang::Decl *decl);
4743
4844bool RefersToUserDefinedDecl (const clang::Expr *expr);
You can’t perform that action at this time.
0 commit comments