[analyzer] Remove incorrect workaround for unimplemented temporary destructors.

If we're trying to get the zero element region of something that's not a region,
we should be returning UnknownVal, which is what ProgramState::getLValue will
do for us.

Patch by Alex McCarthy!

llvm-svn: 205327
This commit is contained in:
Jordan Rose 2014-04-01 16:39:59 +00:00
parent 398fb00e1e
commit a78de33494
2 changed files with 2 additions and 8 deletions

View File

@ -91,12 +91,6 @@ void ExprEngine::performTrivialCopy(NodeBuilder &Bldr, ExplodedNode *Pred,
/// If the type is not an array type at all, the original value is returned.
static SVal makeZeroElementRegion(ProgramStateRef State, SVal LValue,
QualType &Ty) {
// FIXME: This check is just a temporary workaround, because
// ProcessTemporaryDtor sends us NULL regions. It will not be necessary once
// we can properly process temporary destructors.
if (!LValue.getAsRegion())
return LValue;
SValBuilder &SVB = State->getStateManager().getSValBuilder();
ASTContext &Ctx = SVB.getContext();

View File

@ -8,8 +8,8 @@ namespace Cxx11BraceInit {
~Foo() {}
};
/* FIXME: Don't crash here.
void testInitializerList() {
for (Foo foo : {Foo(), Foo()}) {}
} */
}
}