wiki: StaticAnalysis

Version 2 (modified by ziqing, 7 years ago) ( diff )

--

Points-To Analysis

The Flow-Insensitive Representation

  • AssignmentIF : A flow-insensitive representation of a program is a set of AssignmentIF. An AssignmentIF instance represents an assignment in the program which is one of the following forms:
    • Base: lhs = &rhs
    • Simple: lhs = rhs
    • Complex 1: *lhs = rhs
    • Complex 2: lhs = *rhs

For the case of *lhs = *rhs , an auxiliary variable tmp is introduced: tmp = *rhs , *rhs = tmp .

For now, structs and array elements are all invisible for the flow-insensitive representation: so expr.id is abstracted to expr; expr->id is abstracted to *expr; a[I] is abstracted to a; *(p + i), where I is an integer, is abstracted to *p.

For the case of lhs = a op b (or *lhs = a op b), it is abstracted to lhs = a (or *lhs = a) and lhs = b (or *lhs = b)

Read / Write Analysis

Note: See TracWiki for help on using the wiki.