[clang] [Clang] Generate the GEP instead of adding AST nodes (PR #73730)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 28 17:22:34 PST 2023
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 4eb421192479dbecae2621b868e55aaf6d945b02 3e500c2a7c6b7895ebe292a1ed50e04409ba149c -- clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGExpr.cpp clang/lib/CodeGen/CodeGenFunction.h
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index b77d9d8904..2708aa8b27 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -956,7 +956,7 @@ static llvm::Value *getArrayIndexingBound(CodeGenFunction &CGF,
return nullptr;
}
-namespace {
+namespace {
struct MemberExprBaseVisitor
: public StmtVisitor<MemberExprBaseVisitor, Expr *> {
@@ -973,21 +973,11 @@ struct MemberExprBaseVisitor
Expr *VisitArraySubscriptExpr(ArraySubscriptExpr *E) {
return Visit(E->getBase());
}
- Expr *VisitCastExpr(CastExpr *E) {
- return Visit(E->getSubExpr());
- }
- Expr *VisitDeclRefExpr(DeclRefExpr *E) {
- return E;
- }
- Expr *VisitMemberExpr(MemberExpr *E) {
- return Visit(E->getBase());
- }
- Expr *VisitParenExpr(ParenExpr *E) {
- return Visit(E->getSubExpr());
- }
- Expr *VisitUnaryOperator(UnaryOperator *E) {
- return Visit(E->getSubExpr());
- }
+ Expr *VisitCastExpr(CastExpr *E) { return Visit(E->getSubExpr()); }
+ Expr *VisitDeclRefExpr(DeclRefExpr *E) { return E; }
+ Expr *VisitMemberExpr(MemberExpr *E) { return Visit(E->getBase()); }
+ Expr *VisitParenExpr(ParenExpr *E) { return Visit(E->getSubExpr()); }
+ Expr *VisitUnaryOperator(UnaryOperator *E) { return Visit(E->getSubExpr()); }
};
} // end anonymous namespace
@@ -998,10 +988,10 @@ CodeGenFunction::BuildCountedByFieldExpr(const Expr *Base,
// Find the outer struct expr (i.e. p in p->a.b.c.d).
Expr *CountedByExpr = MemberExprBaseVisitor().Visit(const_cast<Expr *>(Base));
- llvm::Value *Res =
- CountedByExpr->getType()->isPointerType()
- ? EmitPointerWithAlignment(CountedByExpr).getPointer()
- : EmitDeclRefLValue(cast<DeclRefExpr>(CountedByExpr)).getPointer(*this);
+ llvm::Value *Res = CountedByExpr->getType()->isPointerType()
+ ? EmitPointerWithAlignment(CountedByExpr).getPointer()
+ : EmitDeclRefLValue(cast<DeclRefExpr>(CountedByExpr))
+ .getPointer(*this);
auto *Zero = llvm::ConstantInt::get(Int32Ty, 0);
SmallVector<llvm::Value *, 4> Indices{Zero};
@@ -1010,7 +1000,8 @@ CodeGenFunction::BuildCountedByFieldExpr(const Expr *Base,
} else if (const auto *I = dyn_cast<IndirectFieldDecl>(CountedByVD)) {
for (auto *ND : I->chain()) {
if (auto *FD = dyn_cast<FieldDecl>(ND)) {
- Indices.emplace_back(llvm::ConstantInt::get(Int32Ty, FD->getFieldIndex()));
+ Indices.emplace_back(
+ llvm::ConstantInt::get(Int32Ty, FD->getFieldIndex()));
}
}
}
@@ -1018,13 +1009,15 @@ CodeGenFunction::BuildCountedByFieldExpr(const Expr *Base,
const DeclContext *DC = CountedByVD->getLexicalDeclContext();
const auto *CountedByRD = cast<RecordDecl>(DC);
- llvm::Type *Ty = CGM.getTypes().ConvertType(QualType(CountedByRD->getTypeForDecl(), 0));
+ llvm::Type *Ty =
+ CGM.getTypes().ConvertType(QualType(CountedByRD->getTypeForDecl(), 0));
Res = Builder.CreateGEP(Ty, Res, Indices, "bork");
QualType CountedByTy(CountedByVD->getType());
TypeInfo TI = getContext().getTypeInfo(CountedByTy);
Ty = CGM.getTypes().ConvertType(CountedByTy);
- Address Addr(Res, Ty, CharUnits::fromQuantity(TI.Align / getContext().getCharWidth()));
+ Address Addr(Res, Ty,
+ CharUnits::fromQuantity(TI.Align / getContext().getCharWidth()));
return Builder.CreateLoad(Addr, Res, "fork");
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/73730
More information about the cfe-commits
mailing list