mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
[clang][bytecode][NFC] Fix a few clang-tidy complaints (#150940)
This commit is contained in:
@@ -1022,7 +1022,8 @@ bool Compiler<Emitter>::VisitPointerArithBinOp(const BinaryOperator *E) {
|
||||
if (classifyPrim(E) != PT_Ptr)
|
||||
return this->emitDecayPtr(PT_Ptr, classifyPrim(E), E);
|
||||
return true;
|
||||
} else if (Op == BO_Sub) {
|
||||
}
|
||||
if (Op == BO_Sub) {
|
||||
if (!this->emitSubOffset(OffsetType, E))
|
||||
return false;
|
||||
|
||||
@@ -3703,7 +3704,7 @@ bool Compiler<Emitter>::VisitBlockExpr(const BlockExpr *E) {
|
||||
return true;
|
||||
|
||||
const Function *Func = nullptr;
|
||||
if (auto F = Ctx.getOrCreateObjCBlock(E))
|
||||
if (const Function *F = Ctx.getOrCreateObjCBlock(E))
|
||||
Func = F;
|
||||
|
||||
if (!Func)
|
||||
@@ -4288,7 +4289,8 @@ bool Compiler<Emitter>::visitZeroArrayInitializer(QualType T, const Expr *E) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} else if (ElemType->isRecordType()) {
|
||||
}
|
||||
if (ElemType->isRecordType()) {
|
||||
const Record *R = getRecord(ElemType);
|
||||
|
||||
for (size_t I = 0; I != NumElems; ++I) {
|
||||
@@ -4302,7 +4304,8 @@ bool Compiler<Emitter>::visitZeroArrayInitializer(QualType T, const Expr *E) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} else if (ElemType->isArrayType()) {
|
||||
}
|
||||
if (ElemType->isArrayType()) {
|
||||
for (size_t I = 0; I != NumElems; ++I) {
|
||||
if (!this->emitConstUint32(I, E))
|
||||
return false;
|
||||
@@ -4774,11 +4777,10 @@ VarCreationState Compiler<Emitter>::visitVarDecl(const VarDecl *VD,
|
||||
if (!this->visit(Init))
|
||||
return false;
|
||||
return this->emitSetLocal(*VarT, Offset, VD) && Scope.destroyLocals();
|
||||
} else {
|
||||
}
|
||||
if (!this->visit(Init))
|
||||
return false;
|
||||
return this->emitSetLocal(*VarT, Offset, VD);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (std::optional<unsigned> Offset = this->allocateLocal(
|
||||
@@ -4805,7 +4807,7 @@ bool Compiler<Emitter>::visitAPValue(const APValue &Val, PrimType ValType,
|
||||
assert(!DiscardResult);
|
||||
if (Val.isInt())
|
||||
return this->emitConst(Val.getInt(), ValType, E);
|
||||
else if (Val.isFloat()) {
|
||||
if (Val.isFloat()) {
|
||||
APFloat F = Val.getFloat();
|
||||
return this->emitFloat(F, E);
|
||||
}
|
||||
@@ -4816,9 +4818,8 @@ bool Compiler<Emitter>::visitAPValue(const APValue &Val, PrimType ValType,
|
||||
APValue::LValueBase Base = Val.getLValueBase();
|
||||
if (const Expr *BaseExpr = Base.dyn_cast<const Expr *>())
|
||||
return this->visit(BaseExpr);
|
||||
else if (const auto *VD = Base.dyn_cast<const ValueDecl *>()) {
|
||||
if (const auto *VD = Base.dyn_cast<const ValueDecl *>())
|
||||
return this->visitDeclRef(VD, E);
|
||||
}
|
||||
} else if (Val.isMemberPointer()) {
|
||||
if (const ValueDecl *MemberDecl = Val.getMemberPointerDecl())
|
||||
return this->emitGetMemberPtr(MemberDecl, E);
|
||||
@@ -4854,7 +4855,8 @@ bool Compiler<Emitter>::visitAPValueInitializer(const APValue &Val,
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if (Val.isUnion()) {
|
||||
}
|
||||
if (Val.isUnion()) {
|
||||
const FieldDecl *UnionField = Val.getUnionField();
|
||||
const Record *R = this->getRecord(UnionField->getParent());
|
||||
assert(R);
|
||||
@@ -4864,7 +4866,8 @@ bool Compiler<Emitter>::visitAPValueInitializer(const APValue &Val,
|
||||
if (!this->visitAPValue(F, T, E))
|
||||
return false;
|
||||
return this->emitInitField(T, RF->Offset, E);
|
||||
} else if (Val.isArray()) {
|
||||
}
|
||||
if (Val.isArray()) {
|
||||
const auto *ArrType = T->getAsArrayTypeUnsafe();
|
||||
QualType ElemType = ArrType->getElementType();
|
||||
for (unsigned A = 0, AN = Val.getArraySize(); A != AN; ++A) {
|
||||
@@ -4981,12 +4984,10 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) {
|
||||
|
||||
// Calls to replaceable operator new/operator delete.
|
||||
if (FuncDecl->isUsableAsGlobalAllocationFunctionInConstantEvaluation()) {
|
||||
if (FuncDecl->getDeclName().isAnyOperatorNew()) {
|
||||
if (FuncDecl->getDeclName().isAnyOperatorNew())
|
||||
return VisitBuiltinCallExpr(E, Builtin::BI__builtin_operator_new);
|
||||
} else {
|
||||
assert(FuncDecl->getDeclName().getCXXOverloadedOperator() == OO_Delete);
|
||||
return VisitBuiltinCallExpr(E, Builtin::BI__builtin_operator_delete);
|
||||
}
|
||||
assert(FuncDecl->getDeclName().getCXXOverloadedOperator() == OO_Delete);
|
||||
return VisitBuiltinCallExpr(E, Builtin::BI__builtin_operator_delete);
|
||||
}
|
||||
|
||||
// Explicit calls to trivial destructors
|
||||
@@ -5455,7 +5456,9 @@ bool Compiler<Emitter>::visitReturnStmt(const ReturnStmt *RS) {
|
||||
return false;
|
||||
this->emitCleanup();
|
||||
return this->emitRet(*ReturnType, RS);
|
||||
} else if (RE->getType()->isVoidType()) {
|
||||
}
|
||||
|
||||
if (RE->getType()->isVoidType()) {
|
||||
if (!this->visit(RE))
|
||||
return false;
|
||||
} else {
|
||||
@@ -5500,7 +5503,7 @@ template <class Emitter> bool Compiler<Emitter>::visitIfStmt(const IfStmt *IS) {
|
||||
if (std::optional<bool> BoolValue = getBoolValue(IS->getCond())) {
|
||||
if (*BoolValue)
|
||||
return visitChildStmt(IS->getThen());
|
||||
else if (const Stmt *Else = IS->getElse())
|
||||
if (const Stmt *Else = IS->getElse())
|
||||
return visitChildStmt(Else);
|
||||
return true;
|
||||
}
|
||||
@@ -5992,7 +5995,7 @@ bool Compiler<Emitter>::compileConstructor(const CXXConstructorDecl *Ctor) {
|
||||
if (!this->emitThis(Ctor))
|
||||
return false;
|
||||
|
||||
auto PVD = Ctor->getParamDecl(0);
|
||||
const ParmVarDecl *PVD = Ctor->getParamDecl(0);
|
||||
ParamOffset PO = this->Params[PVD]; // Must exist.
|
||||
|
||||
if (!this->emitGetParam(PT_Ptr, PO.Offset, Ctor))
|
||||
@@ -6153,7 +6156,7 @@ bool Compiler<Emitter>::compileUnionAssignmentOperator(
|
||||
if (!this->emitThis(MD))
|
||||
return false;
|
||||
|
||||
auto PVD = MD->getParamDecl(0);
|
||||
const ParmVarDecl *PVD = MD->getParamDecl(0);
|
||||
ParamOffset PO = this->Params[PVD]; // Must exist.
|
||||
|
||||
if (!this->emitGetParam(PT_Ptr, PO.Offset, MD))
|
||||
|
||||
@@ -845,7 +845,7 @@ bool CheckInit(InterpState &S, CodePtr OpPC, const Pointer &Ptr) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CheckCallable(InterpState &S, CodePtr OpPC, const Function *F) {
|
||||
static bool CheckCallable(InterpState &S, CodePtr OpPC, const Function *F) {
|
||||
|
||||
if (F->isVirtual() && !S.getLangOpts().CPlusPlus20) {
|
||||
const SourceLocation &Loc = S.Current->getLocation(OpPC);
|
||||
|
||||
@@ -240,9 +240,9 @@ static bool interp__builtin_strcmp(InterpState &S, CodePtr OpPC,
|
||||
T CB = PB.deref<T>();
|
||||
if (CA > CB)
|
||||
return returnResult(1);
|
||||
else if (CA < CB)
|
||||
if (CA < CB)
|
||||
return returnResult(-1);
|
||||
else if (CA.isZero() || CB.isZero())
|
||||
if (CA.isZero() || CB.isZero())
|
||||
return returnResult(0);
|
||||
});
|
||||
continue;
|
||||
@@ -253,7 +253,7 @@ static bool interp__builtin_strcmp(InterpState &S, CodePtr OpPC,
|
||||
|
||||
if (CA > CB)
|
||||
return returnResult(1);
|
||||
else if (CA < CB)
|
||||
if (CA < CB)
|
||||
return returnResult(-1);
|
||||
if (CA == 0 || CB == 0)
|
||||
return returnResult(0);
|
||||
@@ -1048,7 +1048,7 @@ static bool interp__builtin_atomic_lock_free(InterpState &S, CodePtr OpPC,
|
||||
PtrArg = ICE->getSubExpr();
|
||||
}
|
||||
|
||||
if (auto PtrTy = PtrArg->getType()->getAs<PointerType>()) {
|
||||
if (const auto *PtrTy = PtrArg->getType()->getAs<PointerType>()) {
|
||||
QualType PointeeType = PtrTy->getPointeeType();
|
||||
if (!PointeeType->isIncompleteType() &&
|
||||
S.getASTContext().getTypeAlignInChars(PointeeType) >= Size) {
|
||||
@@ -1967,7 +1967,8 @@ static bool interp__builtin_memcmp(InterpState &S, CodePtr OpPC,
|
||||
if (A < B) {
|
||||
pushInteger(S, -1, Call->getType());
|
||||
return true;
|
||||
} else if (A > B) {
|
||||
}
|
||||
if (A > B) {
|
||||
pushInteger(S, 1, Call->getType());
|
||||
return true;
|
||||
}
|
||||
@@ -1979,7 +1980,8 @@ static bool interp__builtin_memcmp(InterpState &S, CodePtr OpPC,
|
||||
if (A < B) {
|
||||
pushInteger(S, -1, Call->getType());
|
||||
return true;
|
||||
} else if (A > B) {
|
||||
}
|
||||
if (A > B) {
|
||||
pushInteger(S, 1, Call->getType());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -14,11 +14,9 @@
|
||||
#define LLVM_CLANG_AST_INTERP_INTERPSTACK_H
|
||||
|
||||
#include "FixedPoint.h"
|
||||
#include "FunctionPointer.h"
|
||||
#include "IntegralAP.h"
|
||||
#include "MemberPointer.h"
|
||||
#include "PrimType.h"
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
namespace clang {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "MemberPointer.h"
|
||||
#include "PrimType.h"
|
||||
#include "Record.h"
|
||||
#include "clang/AST/Expr.h"
|
||||
#include "clang/AST/ExprCXX.h"
|
||||
#include "clang/AST/RecordLayout.h"
|
||||
|
||||
@@ -66,14 +67,14 @@ Pointer::~Pointer() {
|
||||
}
|
||||
}
|
||||
|
||||
void Pointer::operator=(const Pointer &P) {
|
||||
Pointer &Pointer::operator=(const Pointer &P) {
|
||||
// If the current storage type is Block, we need to remove
|
||||
// this pointer from the block.
|
||||
if (isBlockPointer()) {
|
||||
if (P.isBlockPointer() && this->block() == P.block()) {
|
||||
Offset = P.Offset;
|
||||
PointeeStorage.BS.Base = P.PointeeStorage.BS.Base;
|
||||
return;
|
||||
return *this;
|
||||
}
|
||||
|
||||
if (Block *Pointee = PointeeStorage.BS.Pointee) {
|
||||
@@ -101,16 +102,17 @@ void Pointer::operator=(const Pointer &P) {
|
||||
} else {
|
||||
assert(false && "Unhandled storage kind");
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
void Pointer::operator=(Pointer &&P) {
|
||||
Pointer &Pointer::operator=(Pointer &&P) {
|
||||
// If the current storage type is Block, we need to remove
|
||||
// this pointer from the block.
|
||||
if (isBlockPointer()) {
|
||||
if (P.isBlockPointer() && this->block() == P.block()) {
|
||||
Offset = P.Offset;
|
||||
PointeeStorage.BS.Base = P.PointeeStorage.BS.Base;
|
||||
return;
|
||||
return *this;
|
||||
}
|
||||
|
||||
if (Block *Pointee = PointeeStorage.BS.Pointee) {
|
||||
@@ -138,6 +140,7 @@ void Pointer::operator=(Pointer &&P) {
|
||||
} else {
|
||||
assert(false && "Unhandled storage kind");
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
APValue Pointer::toAPValue(const ASTContext &ASTCtx) const {
|
||||
@@ -603,7 +606,7 @@ bool Pointer::pointsToStringLiteral() const {
|
||||
return false;
|
||||
|
||||
const Expr *E = block()->getDescriptor()->asExpr();
|
||||
return E && isa<StringLiteral>(E);
|
||||
return isa_and_nonnull<StringLiteral>(E);
|
||||
}
|
||||
|
||||
std::optional<std::pair<Pointer, Pointer>>
|
||||
|
||||
@@ -120,8 +120,8 @@ public:
|
||||
Pointer(Block *Pointee, unsigned Base, uint64_t Offset);
|
||||
~Pointer();
|
||||
|
||||
void operator=(const Pointer &P);
|
||||
void operator=(Pointer &&P);
|
||||
Pointer &operator=(const Pointer &P);
|
||||
Pointer &operator=(Pointer &&P);
|
||||
|
||||
/// Equality operators are just for tests.
|
||||
bool operator==(const Pointer &P) const {
|
||||
@@ -761,7 +761,7 @@ public:
|
||||
|
||||
if (Offset < Other.Offset)
|
||||
return ComparisonCategoryResult::Less;
|
||||
else if (Offset > Other.Offset)
|
||||
if (Offset > Other.Offset)
|
||||
return ComparisonCategoryResult::Greater;
|
||||
|
||||
return ComparisonCategoryResult::Equal;
|
||||
|
||||
@@ -418,7 +418,7 @@ Descriptor *Program::createDescriptor(const DeclTy &D, const Type *Ty,
|
||||
}
|
||||
return allocateDescriptor(D, *T, MDSize, NumElems, IsConst, IsTemporary,
|
||||
IsMutable);
|
||||
} else {
|
||||
}
|
||||
// Arrays of composites. In this case, the array is a list of pointers,
|
||||
// followed by the actual elements.
|
||||
const Descriptor *ElemDesc = createDescriptor(
|
||||
@@ -430,7 +430,6 @@ Descriptor *Program::createDescriptor(const DeclTy &D, const Type *Ty,
|
||||
return {};
|
||||
return allocateDescriptor(D, Ty, ElemDesc, MDSize, NumElems, IsConst,
|
||||
IsTemporary, IsMutable);
|
||||
}
|
||||
}
|
||||
|
||||
// Array of unknown bounds - cannot be accessed and pointer arithmetic
|
||||
@@ -440,14 +439,13 @@ Descriptor *Program::createDescriptor(const DeclTy &D, const Type *Ty,
|
||||
if (OptPrimType T = Ctx.classify(ElemTy)) {
|
||||
return allocateDescriptor(D, *T, MDSize, IsConst, IsTemporary,
|
||||
Descriptor::UnknownSize{});
|
||||
} else {
|
||||
}
|
||||
const Descriptor *Desc = createDescriptor(
|
||||
D, ElemTy.getTypePtr(), std::nullopt, IsConst, IsTemporary);
|
||||
if (!Desc)
|
||||
return nullptr;
|
||||
return allocateDescriptor(D, Desc, MDSize, IsTemporary,
|
||||
Descriptor::UnknownSize{});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,10 +19,7 @@
|
||||
#include "Record.h"
|
||||
#include "Source.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/PointerUnion.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Support/Allocator.h"
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
namespace clang {
|
||||
|
||||
Reference in New Issue
Block a user