Consider the following Ada program.
with Text_IO; use Text_IO;
procedure Test is
X : Integer;
procedure A is begin
X := 3;
end A;
procedure B is
X : Integer;
begin
X := 4;
A;
Put_Line(Integer'Image(X));
end B;
begin
X := 2;
B;
Put_Line(Integer'Image(X));
end Test;