[analyzer] pr38838, pr39976: Fix crash on diagnosing before implicit destructor.
authorArtem Dergachev <artem.dergachev@gmail.com>
Thu, 10 Jan 2019 23:44:44 +0000 (23:44 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Thu, 10 Jan 2019 23:44:44 +0000 (23:44 +0000)
commitfc72007f43f25770cd9d7d75fc9efd09bbe7815e
treeb7fae910522380118b8cdffa6ee44f82b905e982
parente73c7a1ab25a484161a9951fadbd93dea4c60d60
[analyzer] pr38838, pr39976: Fix crash on diagnosing before implicit destructor.

We need to be able to emit the diagnostic at PreImplicitCall,
and the patch implements this functionality.

However, for now the need for emitting such diagnostics is not all that great:
it is only necessary to not crash when emitting a false positive due to an
unrelated issue of having dead symbol collection not working properly.

Coming up with a non-false-positive test seems impossible with the current
set of checkers, though it is likely to be needed for good things as well
in the future.

Differential Revision: https://reviews.llvm.org/D56042

rdar://problem/46911462

llvm-svn: 350907
clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
clang/test/Analysis/diagnostics/dtors.cpp [new file with mode: 0644]