davidmalcolm / gcc-python-plugin

GCC plugin that embeds CPython inside the compiler
GNU General Public License v3.0
196 stars 58 forks source link

Interprocedural analysis #80

Open davidmalcolm opened 7 years ago

davidmalcolm commented 7 years ago

Lots of false positives due to lack of interprocedual knowledge.

See e.g.: http://fedorapeople.org/~dmalcolm/gcc-python-plugin/2012-04-04/rrdtool-1.4.7-5.fc17/rrdtool-1.4.7/bindings/python/build/temp.linux-x86_64-2.7/rrdtoolmodule.c.PyRRD_graph-refcount-errors.html#report-2

where presumably create_args() < 0 implies that an exception has already been set.

Similarly: identify functions that steal references, and functions that return borrowed references, and use that when analyzing their callers.

davidmalcolm commented 7 years ago

Imported from trac issue 40. Created by dmalcolm on 2012-04-04T15:08:15, last modified: 2012-04-04T15:09:58

davidmalcolm commented 7 years ago

Trac comment by dmalcolm on 2012-04-04 15:09:58:

Notes on this from an earlier discussion on the mailing list: https://fedorahosted.org/pipermail/gcc-python-plugin/2012-March/000199.html