зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
15e310a3b9
Коммит
d40baf6a77
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче