forked from OSchip/llvm-project
Remove some dead variables clang-analyzer found.
llvm-svn: 92162
This commit is contained in:
parent
6ce6d268a6
commit
d20ef75b91
|
@ -1065,9 +1065,7 @@ ASTContext::getObjCLayout(const ObjCInterfaceDecl *D,
|
|||
|
||||
// Add in synthesized ivar count if laying out an implementation.
|
||||
if (Impl) {
|
||||
unsigned FieldCount = D->ivar_size();
|
||||
unsigned SynthCount = CountSynthesizedIvars(D);
|
||||
FieldCount += SynthCount;
|
||||
// If there aren't any sythesized ivars then reuse the interface
|
||||
// entry. Note we can't cache this because we simply free all
|
||||
// entries later; however we shouldn't look up implementations
|
||||
|
|
|
@ -1291,8 +1291,6 @@ unsigned IntExprEvaluator::GetAlignOfExpr(const Expr *E) {
|
|||
/// VisitSizeAlignOfExpr - Evaluate a sizeof or alignof with a result as the
|
||||
/// expression's type.
|
||||
bool IntExprEvaluator::VisitSizeOfAlignOfExpr(const SizeOfAlignOfExpr *E) {
|
||||
QualType DstTy = E->getType();
|
||||
|
||||
// Handle alignof separately.
|
||||
if (!E->isSizeOf()) {
|
||||
if (E->isArgumentType())
|
||||
|
|
|
@ -2228,7 +2228,6 @@ void GRExprEngine::VisitDeclStmt(DeclStmt *DS, ExplodedNode *Pred,
|
|||
|
||||
if (InitEx) {
|
||||
SVal InitVal = state->getSVal(InitEx);
|
||||
QualType T = VD->getType();
|
||||
|
||||
// Recover some path-sensitivity if a scalar value evaluated to
|
||||
// UnknownVal.
|
||||
|
@ -2261,7 +2260,6 @@ void GRExprEngine::VisitCondInit(VarDecl *VD, Stmt *S,
|
|||
|
||||
const LocationContext *LC = N->getLocationContext();
|
||||
SVal InitVal = state->getSVal(InitEx);
|
||||
QualType T = VD->getType();
|
||||
|
||||
// Recover some path-sensitivity if a scalar value evaluated to
|
||||
// UnknownVal.
|
||||
|
|
|
@ -78,7 +78,6 @@ static uint64_t CalculateCookiePadding(ASTContext &Ctx, const CXXNewExpr *E) {
|
|||
}
|
||||
|
||||
return CalculateCookiePadding(Ctx, E->getAllocatedType());
|
||||
QualType T = E->getAllocatedType();
|
||||
}
|
||||
|
||||
static llvm::Value *EmitCXXNewAllocSize(CodeGenFunction &CGF,
|
||||
|
|
|
@ -1199,7 +1199,7 @@ BinOpInfo ScalarExprEmitter::EmitBinOps(const BinaryOperator *E) {
|
|||
Value *ScalarExprEmitter::EmitCompoundAssign(const CompoundAssignOperator *E,
|
||||
Value *(ScalarExprEmitter::*Func)(const BinOpInfo &)) {
|
||||
bool Ignore = TestAndClearIgnoreResultAssign();
|
||||
QualType LHSTy = E->getLHS()->getType(), RHSTy = E->getRHS()->getType();
|
||||
QualType LHSTy = E->getLHS()->getType();
|
||||
|
||||
BinOpInfo OpInfo;
|
||||
|
||||
|
|
|
@ -3351,7 +3351,6 @@ llvm::Constant *CGObjCCommonMac::BuildIvarLayout(
|
|||
SkipScanIvars.push_back(SkScan);
|
||||
}
|
||||
|
||||
bool BytesSkipped = false;
|
||||
if (!SkipIvars.empty()) {
|
||||
unsigned int LastIndex = SkipIvars.size()-1;
|
||||
int LastByteSkipped =
|
||||
|
@ -3360,9 +3359,8 @@ llvm::Constant *CGObjCCommonMac::BuildIvarLayout(
|
|||
int LastByteScanned =
|
||||
IvarsInfo[LastIndex].ivar_bytepos +
|
||||
IvarsInfo[LastIndex].ivar_size * WordSize;
|
||||
BytesSkipped = (LastByteSkipped > LastByteScanned);
|
||||
// Compute number of bytes to skip at the tail end of the last ivar scanned.
|
||||
if (BytesSkipped) {
|
||||
if (LastByteSkipped > LastByteScanned) {
|
||||
unsigned int TotalWords = (LastByteSkipped + (WordSize -1)) / WordSize;
|
||||
SKIP_SCAN SkScan;
|
||||
SkScan.skip = TotalWords - (LastByteScanned/WordSize);
|
||||
|
@ -3393,8 +3391,6 @@ llvm::Constant *CGObjCCommonMac::BuildIvarLayout(
|
|||
unsigned int skip_big = SkipScanIvars[i].skip / 0xf;
|
||||
unsigned int scan_big = SkipScanIvars[i].scan / 0xf;
|
||||
|
||||
if (skip_small > 0 || skip_big > 0)
|
||||
BytesSkipped = true;
|
||||
// first skip big.
|
||||
for (unsigned int ix = 0; ix < skip_big; ix++)
|
||||
BitMap += (unsigned char)(0xf0);
|
||||
|
|
|
@ -776,10 +776,8 @@ void Driver::BuildJobs(Compilation &C) const {
|
|||
UsePipes = false;
|
||||
|
||||
// -save-temps inhibits pipes.
|
||||
if (SaveTemps && UsePipes) {
|
||||
if (SaveTemps && UsePipes)
|
||||
Diag(clang::diag::warn_drv_pipe_ignored_with_save_temps);
|
||||
UsePipes = true;
|
||||
}
|
||||
|
||||
Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o);
|
||||
|
||||
|
@ -914,14 +912,12 @@ void Driver::BuildJobsForAction(Compilation &C,
|
|||
// See if we should use an integrated preprocessor. We do so when we have
|
||||
// exactly one input, since this is the only use case we care about
|
||||
// (irrelevant since we don't support combine yet).
|
||||
bool UseIntegratedCPP = false;
|
||||
const ActionList *Inputs = &A->getInputs();
|
||||
if (Inputs->size() == 1 && isa<PreprocessJobAction>(*Inputs->begin())) {
|
||||
if (!C.getArgs().hasArg(options::OPT_no_integrated_cpp) &&
|
||||
!C.getArgs().hasArg(options::OPT_traditional_cpp) &&
|
||||
!C.getArgs().hasArg(options::OPT_save_temps) &&
|
||||
T.hasIntegratedCPP()) {
|
||||
UseIntegratedCPP = true;
|
||||
Inputs = &(*Inputs)[0]->getInputs();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -975,8 +975,6 @@ static TryCastResult TryReinterpretCast(Sema &Self, Expr *SrcExpr,
|
|||
const SourceRange &OpRange,
|
||||
unsigned &msg,
|
||||
CastExpr::CastKind &Kind) {
|
||||
QualType OrigDestType = DestType, OrigSrcType = SrcExpr->getType();
|
||||
|
||||
DestType = Self.Context.getCanonicalType(DestType);
|
||||
QualType SrcType = SrcExpr->getType();
|
||||
if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {
|
||||
|
|
|
@ -2453,7 +2453,6 @@ void Sema::CodeCompleteObjCInstanceMessage(Scope *S, ExprTy *Receiver,
|
|||
typedef CodeCompleteConsumer::Result Result;
|
||||
|
||||
Expr *RecExpr = static_cast<Expr *>(Receiver);
|
||||
QualType RecType = RecExpr->getType();
|
||||
|
||||
// If necessary, apply function/array conversion to the receiver.
|
||||
// C99 6.7.5.3p[7,8].
|
||||
|
|
|
@ -109,8 +109,6 @@ namespace {
|
|||
bool
|
||||
Sema::SetParamDefaultArgument(ParmVarDecl *Param, ExprArg DefaultArg,
|
||||
SourceLocation EqualLoc) {
|
||||
QualType ParamType = Param->getType();
|
||||
|
||||
if (RequireCompleteType(Param->getLocation(), Param->getType(),
|
||||
diag::err_typecheck_decl_incomplete_type)) {
|
||||
Param->setInvalidDecl();
|
||||
|
@ -158,7 +156,6 @@ Sema::ActOnParamDefaultArgument(DeclPtrTy param, SourceLocation EqualLoc,
|
|||
UnparsedDefaultArgLocs.erase(Param);
|
||||
|
||||
ExprOwningPtr<Expr> DefaultArg(this, defarg.takeAs<Expr>());
|
||||
QualType ParamType = Param->getType();
|
||||
|
||||
// Default arguments are only permitted in C++
|
||||
if (!getLangOptions().CPlusPlus) {
|
||||
|
|
|
@ -1435,7 +1435,6 @@ Sema::BuildDeclarationNameExpr(const CXXScopeSpec &SS,
|
|||
assert(D && "Cannot refer to a NULL declaration");
|
||||
assert(!isa<FunctionTemplateDecl>(D) &&
|
||||
"Cannot refer unambiguously to a function template");
|
||||
DeclarationName Name = D->getDeclName();
|
||||
|
||||
if (CheckDeclInExpr(*this, Loc, D))
|
||||
return ExprError();
|
||||
|
|
|
@ -978,7 +978,6 @@ Sema::ActOnBlockReturnStmt(SourceLocation ReturnLoc, Expr *RetValExp) {
|
|||
|
||||
if (!FnRetType->isDependentType() && !RetValExp->isTypeDependent()) {
|
||||
// we have a non-void block with an expression, continue checking
|
||||
QualType RetValType = RetValExp->getType();
|
||||
|
||||
// C99 6.8.6.4p3(136): The return statement is not an assignment. The
|
||||
// overlap restriction of subclause 6.5.16.1 does not apply to the case of
|
||||
|
|
Loading…
Reference in New Issue