HomePhabricator

[analyzer] Be less pessimistic about invalidation of global variables as a…

Authored by zaks.anna on Jan 4 2012, 3:54 PM.

Description

[analyzer] Be less pessimistic about invalidation of global variables as a result of a call.

Problem:
Global variables, which come in from system libraries should not be
invalidated by all calls. Also, non-system globals should not be
invalidated by system calls.

Solution:
The following solution to invalidation of globals seems flexible enough
for taint (does not invalidate stdin) and should not lead to too
many false positives. We split globals into 3 classes:

  • immutable - values are preserved by calls (unless the specific

global is passed in as a parameter):

A :  Most system globals and const scalars
  • invalidated by functions defined in system headers: B: errno
  • invalidated by all other functions (note, these functions may in

turn contain system calls):

B: errno
C: all other globals (which are not in A nor B)

llvm-svn: 147569

Details

Committed
zaks.annaJan 4 2012, 3:54 PM
Parents
rG5acd9603da41: [analyzer] Correct the error message in the testing infrastructure.
Branches
Unknown
Tags
Unknown