HomePhabricator

[analyzer] Add sink after construction of temporary with no-return destructor.

Authored by dcoughlin on Dec 19 2016, 2:23 PM.

Description

[analyzer] Add sink after construction of temporary with no-return destructor.

The analyzer's CFG currently doesn't have nodes for calls to temporary
destructors. This causes the analyzer to explore infeasible paths in which
a no-return destructor would have stopped exploration and so results in false
positives when no-return destructors are used to implement assertions.

To mitigate these false positives, this patch stops generates a sink after
evaluating a constructor on a temporary object that has a no-return destructor.
This results in a loss of coverage because the time at which the destructor is
called may be after the time of construction (especially for lifetime-extended
temporaries).

This addresses PR15599.

rdar://problem/29131566

llvm-svn: 290140

Details

Committed
dcoughlinDec 19 2016, 2:23 PM
Parents
rGd9430944f4bb: [ObjectYAML] Support for DWARF Pub Sections
Branches
Unknown
Tags
Unknown