|
@@ -3390,12 +3390,10 @@ implementation
|
|
Message(sym_e_label_already_defined);
|
|
Message(sym_e_label_already_defined);
|
|
if symtablestack.top.symtablelevel<>srsymtable.symtablelevel then
|
|
if symtablestack.top.symtablelevel<>srsymtable.symtablelevel then
|
|
begin
|
|
begin
|
|
- tlabelsym(srsym).nonlocal:=true;
|
|
|
|
include(current_procinfo.flags,pi_has_interproclabel);
|
|
include(current_procinfo.flags,pi_has_interproclabel);
|
|
|
|
+ if (current_procinfo.procdef.proctypeoption in [potype_unitinit,potype_unitfinalize]) then
|
|
|
|
+ Message(sym_e_interprocgoto_into_init_final_code_not_allowed);
|
|
end;
|
|
end;
|
|
- if tlabelsym(srsym).nonlocal and
|
|
|
|
- (current_procinfo.procdef.proctypeoption in [potype_unitinit,potype_unitfinalize]) then
|
|
|
|
- Message(sym_e_interprocgoto_into_init_final_code_not_allowed);
|
|
|
|
tlabelsym(srsym).defined:=true;
|
|
tlabelsym(srsym).defined:=true;
|
|
p1:=clabelnode.create(nil,tlabelsym(srsym));
|
|
p1:=clabelnode.create(nil,tlabelsym(srsym));
|
|
tlabelsym(srsym).code:=p1;
|
|
tlabelsym(srsym).code:=p1;
|