Skip to content

Commit caa8217

Browse files
committed
Delete IsCharPointerFieldFromLibc and IsCharArrayFieldFromLibc
1 parent 8cd9189 commit caa8217

3 files changed

Lines changed: 0 additions & 43 deletions

File tree

cpp2rust/converter/converter.cpp

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff 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
}

cpp2rust/converter/converter_lib.cpp

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff 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-
152132
bool IsUserDefinedDecl(const clang::Decl *decl) {
153133
const auto &ctx = decl->getASTContext();
154134
const auto &src_mgr = ctx.getSourceManager();

cpp2rust/converter/converter_lib.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@ bool IsComparisonWithNullOp(const clang::BinaryOperator *expr);
3939

4040
bool IsInMainFile(const clang::Decl *decl);
4141

42-
bool IsCharPointerFieldFromLibc(const clang::ValueDecl *decl);
43-
44-
bool IsCharArrayFieldFromLibc(const clang::ValueDecl *decl);
45-
4642
bool IsUserDefinedDecl(const clang::Decl *decl);
4743

4844
bool RefersToUserDefinedDecl(const clang::Expr *expr);

0 commit comments

Comments
 (0)