[analyzer] Remove the loop from the exploded graph caused by missing information...
authorisuckatcs <65320245+isuckatcs@users.noreply.github.com>
Fri, 10 Feb 2023 17:07:31 +0000 (18:07 +0100)
committerisuckatcs <65320245+isuckatcs@users.noreply.github.com>
Sat, 4 Mar 2023 01:01:45 +0000 (02:01 +0100)
commitd65379c8d4768ddae143672f5d4827acafe22553
treecdbecc0d5d4fdcc3ccf69a432dc84867c7a73ab8
parentb056c1cb1b4b5443149a28ca2216b2f7642150c3
[analyzer] Remove the loop from the exploded graph caused by missing information in program points

This patch adds CFGElementRef to ProgramPoints
and helps the analyzer to differentiate between
two otherwise identically looking ProgramPoints.

Fixes #60412

Differential Revision: https://reviews.llvm.org/D143328
13 files changed:
clang/include/clang/Analysis/ProgramPoint.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
clang/lib/StaticAnalyzer/Core/CallEvent.cpp
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
clang/test/Analysis/PR60412.cpp [new file with mode: 0644]
clang/test/Analysis/analysis-after-multiple-dtors.cpp [new file with mode: 0644]
clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp