Fix a -Wuninitialized warning; it's actually a false positive,

but it's not reasonable for the diagnostic to figure that out.
Pointed out by Benjamin Kramer.

Also clarify the logic here.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126017 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
John McCall 2011-02-19 03:13:26 +00:00
Родитель 15e310a3b9
Коммит d40baf6a77
1 изменённых файлов: 10 добавлений и 2 удалений

Просмотреть файл

@ -1223,10 +1223,18 @@ CFGBlock *CFGBuilder::VisitConditionalOperator(AbstractConditionalOperator *C,
addSuccessor(Block, KnownVal.isFalse() ? NULL : LHSBlock);
addSuccessor(Block, KnownVal.isTrue() ? NULL : RHSBlock);
Block->setTerminator(C);
CFGBlock *result;
Expr *condExpr = C->getCond();
CFGBlock *result = 0;
// Run the condition expression if it's not trivially expressed in
// terms of the opaque value (or if there is no opaque value).
if (condExpr != opaqueValue) result = addStmt(condExpr);
if (BCO) result = addStmt(BCO->getCommon());
// Before that, run the common subexpression if there was one.
// At least one of this or the above will be run.
if (opaqueValue) result = addStmt(BCO->getCommon());
return result;
}