6 Commits

Author SHA1 Message Date
Ryosuke Niwa
4d04a40adb
[alpha.webkit.UncountedCallArgsChecker] Allow a variable declaration in a trivial function. (#82291) 2024-02-27 22:25:55 -08:00
Ryosuke Niwa
c3b87a8810
[alpha.webkit.UncountedCallArgsChecker] Allow ASSERT and atomic<T> operations in a trivial function (#82063) 2024-02-19 16:11:49 -08:00
Ryosuke Niwa
ceaf09cd1a
[alpha.webkit.UncountedCallArgsChecker] Detect more trivial functions (#81829)
Allow address-of operator (&), enum constant, and a reference to
constant as well as materializing temporqary expression and an
expression with cleanups to appear within a trivial function.
2024-02-15 20:53:49 -08:00
Ryosuke Niwa
efad1885bf
Fix uncounted-obj-arg.cpp for Windows. (#81903) 2024-02-15 11:12:17 -08:00
Ryosuke Niwa
a7982d5e7a
[analyzer] UncountedCallArgsChecker: Detect & ignore trivial function calls. (#81808)
This PR introduces the concept of a "trivial function" which applies to
a function that only calls other trivial functions and contain literals
and expressions that don't result in heap mutations (specifically it
does not call deref). This is implemented using ConstStmtVisitor and
checking each statement and expression's trivialness.

This PR also introduces the concept of a "ingleton function", which is a
static member function or a free standing function which ends with the
suffix "singleton". Such a function's return value is understood to be
safe to call any function with.
2024-02-14 18:46:30 -08:00
Ryosuke Niwa
3a49dfb28f
[analyzer] Check the safety of the object argument in a member function call. (#81400)
This PR makes alpha.webkit.UncountedCallArgsChecker eplicitly check the
safety of the object argument in a member function call. It also removes
the exemption of local variables from this checker so that each local
variable's safety is checked if it's used in a function call instead of
relying on the local variable checker to find those since local variable
checker currently has exemption for "for" and "if" statements.
2024-02-14 14:44:51 -08:00