add support for (single) declarations
For every declaration, we record that the declared variable was declared
somewhere inside the scop and we introduce a kill statement at the location
of the declaration. This allows users who perform dataflow analysis to
stop looking for sources before the declaration.
If the declaration appears inside a block, we also add a kill statement
at the end of the block. This signals to the same users that
the value of the variable will not be used after the block.
Otherwise, we mark the variable as being exposed to the outside of the scop.
In autodetect mode, we skip declarations in the outer scope.
We do this to avoid autodetecting scops containing only declarations.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>