]> granicus.if.org Git - clang/commit
[analyzer] Correctly devirtualize virtual method calls in destructors.
authorJordan Rose <jordan_rose@apple.com>
Wed, 15 Aug 2012 00:51:56 +0000 (00:51 +0000)
committerJordan Rose <jordan_rose@apple.com>
Wed, 15 Aug 2012 00:51:56 +0000 (00:51 +0000)
commit0ad36baedc516005cb6ea97d96327517ebfe5138
treec7150701fd2fef0d7ba8ae85d64fe1b9115f06de
parent2f834a5f5a4df86a70958f418e9773cd7a0aea42
[analyzer] Correctly devirtualize virtual method calls in destructors.

C++11 [class.cdtor]p4: When a virtual function is called directly or
  indirectly from a constructor or from a destructor, including during
  the construction or destruction of the class’s non-static data members,
  and the object to which the call applies is the object under
  construction or destruction, the function called is the final overrider
  in the constructor's or destructor's class and not one overriding it in
  a more-derived class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161915 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
lib/StaticAnalyzer/Core/CallEvent.cpp
lib/StaticAnalyzer/Core/ProgramState.cpp
test/Analysis/dtor.cpp