Skip to content

Commit 037baab

Browse files
committed
Add sizeof pack
1 parent 5c99fd1 commit 037baab

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

‎cpp2rust/converter/converter.cpp‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3213,6 +3213,14 @@ bool Converter::VisitTypeTraitExpr(clang::TypeTraitExpr *expr) {
32133213
return false;
32143214
}
32153215

3216+
bool Converter::VisitSizeOfPackExpr(clang::SizeOfPackExpr *expr) {
3217+
clang::Expr::EvalResult result;
3218+
ENSURE(expr->EvaluateAsInt(result, ctx_));
3219+
StrCat(std::to_string(result.Val.getInt().getExtValue()));
3220+
computed_expr_type_ = ComputedExprType::FreshValue;
3221+
return false;
3222+
}
3223+
32163224
bool Converter::VisitOffsetOfExpr(clang::OffsetOfExpr *expr) {
32173225
std::string member_path;
32183226
for (unsigned i = 0; i < expr->getNumComponents(); ++i) {

‎cpp2rust/converter/converter.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ class Converter : public clang::RecursiveASTVisitor<Converter> {
369369
VisitUnaryExprOrTypeTraitExpr(clang::UnaryExprOrTypeTraitExpr *expr);
370370

371371
virtual bool VisitTypeTraitExpr(clang::TypeTraitExpr *expr);
372+
virtual bool VisitSizeOfPackExpr(clang::SizeOfPackExpr *expr);
372373

373374
virtual bool VisitOffsetOfExpr(clang::OffsetOfExpr *expr);
374375

0 commit comments

Comments
 (0)