An ambiguous usage of a name in a statement of a computer program is
resolved at least partially by adding to an entry statement thereof a
definition that includes the ambiguously used name followed by
constructing a definition-use graph, followed by checking whether or not
an edge from the added definition reaches the statement containing the
ambiguously used name. If all edges into the ambiguous statement are from
the added definition, then the name is deemed to be a function call. If
all edges into the ambiguous statement are not from the added definition,
then the name is deemed to be a memory access. If some edges into the
ambiguous statement are from the added definition but other edges are
not, then the statement is flagged as a dual usage.