Program Berend3a;

(*$X+*)

Procedure Foo ( Bar: Integer );

Label
  L;

begin (* Foo *)
  write ( 'OK' );
  goto L; (* WRONG -- size of S is not known at runtime, in case there is some
             computation between the `goto' and the `var' which modifies Bar. }
  Var S: String ( Bar );
  write ( 'failed' );
  L:
  writeln;
end (* Foo *);

begin
  Foo ( 42 );
end.
