tree 1aee0a380f1e91d7cbf49af1e3e0f26d0a542fcb
parent 08beaa868ecc4846755f8679a68e79f4642b268b
author Ryosuke Niwa <rniwa@webkit.org> 1745789072 -0700
committer GitHub <noreply@github.com> 1745789072 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoDqCQCRC1aQ7uu5UhlAAAqRYQADrc1p0caOgjf9a8sISMFTIH
 Q/HWczgjfeswrvnt/X4z4ceFAP036+okx5qXlJz+YwGDNWYwcrS6V8s1ytzxKWfg
 2ebc32YmcoAC0DoO+l0FTCvHiCEeG7tjBNnX9DmZla6YKQaXNvkxFvA4lCkVrnXJ
 aJ2+wfDww+kbXS+FzABBoSESIl+5KOYzy6CBd+h1xUF0izQ2L5VHoPbIf33R7bfz
 sMmpLhMVBCJVboS+M0ILnRVqPktEdedQukEMfit0t5DIUlqqMVwdMhWhFIwSuNXX
 FzI0tTrq79AK9KJtIPzc/vevFZBjmcdnolQl0lJeA4nEH9Ccj5BZa6CMoRryMB8p
 mjHG6E7dK1UAk938Eoe1p38vTcybkoBqFsblQNy2W4pNf86HoomV3ggLzglFHQ2E
 GfLLxqpef4QYSVNxzFh9TBoYsWPX6vzyBvTF5NdmvgXLV/BI7rnB0VEwJiA+k1Lt
 ODao+E8RmeyDJjJWC/tVGbAMDEqVgA50Le3UJH7ss4CqlSsvzdqpLtytjb1Lc4dv
 egDoodj9k23BM2yqskrJjDGbl5TcMom5WPuwbBNzU6m4lDjkysiTsOoqZR6zJ6VU
 vjV9mNEiqqzsKTIWoD9kuZYpVqH5qxliVLWStshB0DB7VKc+QuurQurSFDRNj1D/
 fbkubjjC2FFLFuStXNGu
 =xU4f
 -----END PGP SIGNATURE-----
 

[alpha.webkit.RetainPtrCtorAdoptChecker] An assortment of small enhancements (#135329)

This PR implements various small enhancements to
alpha.webkit.RetainPtrCtorAdoptChecker:
 - Detect leaks from [[X alloc] init] when ARC is disabled.
 - Detect leaks from calling Create, Copy, and other +1 CF functions.
 - Recognize [allocX() init] pattern where allocX is a C/C++ function.
 - Recognize _init in addition to init as an init function.
 - Recognize [[[X alloc] init] autorelease].
 - Recognize CFBridgingRelease.
 - Support CF_RETRUNS_RETAINED on out arguments of a C function.
- Support returning +1 object in Create, Copy, and other +1 functions or
+1 selectors.
 - Support variadic Create, Copy, and other +1 C/C++ functions.

To make these enhancements, this PR introduces new visit functions for
ObjCMessageExpr, ReturnStmt, VarDecl, and BinaryOperator. These
functions look for a specific construct mentioned above and adds an
expression such as [[X alloc] init] or CreateX to a DenseSet
CreateOrCopyFnCall when the expression does not result in leaks. When
the code to detect leaks such as the one in visitObjCMessageExpr later
encounters this expression, it can bail out early if the expression is
in the set.