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