[analyzer] Fix another use of the address of a temporary, like r163402.

Again, GCC is more aggressive about reusing temporary space than we are,
leading to Release build crashes for this undefined behavior.

PR13710 (though it may not be the only problem there)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163747 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jordan Rose 2012-09-12 22:48:08 +00:00
Родитель 3225d072a3
Коммит 1a7bcc41ef
1 изменённых файлов: 2 добавлений и 1 удалений

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

@ -1280,7 +1280,8 @@ static void GenerateExtensivePathDiagnostic(PathDiagnostic& PD,
}
if (const BlockEntrance *BE = dyn_cast<BlockEntrance>(&P)) {
if (const CFGStmt *S = BE->getFirstElement().getAs<CFGStmt>()) {
CFGElement First = BE->getFirstElement();
if (const CFGStmt *S = First.getAs<CFGStmt>()) {
const Stmt *stmt = S->getStmt();
if (IsControlFlowExpr(stmt)) {
// Add the proper context for '&&', '||', and '?'.