diff --git a/compiler/nmem.pas b/compiler/nmem.pas index 83f0a0348c..f0c8301b4c 100644 --- a/compiler/nmem.pas +++ b/compiler/nmem.pas @@ -94,6 +94,7 @@ interface function simplify(forinline : boolean) : tnode; override; protected mark_read_written: boolean; + procedure set_labelsym_resultdef; virtual; function typecheck_non_proc(realsource: tnode; out res: tnode): boolean; virtual; end; taddrnodeclass = class of taddrnode; @@ -646,6 +647,12 @@ implementation end; + procedure taddrnode.set_labelsym_resultdef; + begin + resultdef:=voidcodepointertype; + end; + + function taddrnode.typecheck_non_proc(realsource: tnode; out res: tnode): boolean; var hp : tnode; @@ -657,7 +664,7 @@ implementation if (realsource.nodetype=loadn) and (tloadnode(realsource).symtableentry.typ=labelsym) then begin - resultdef:=voidcodepointertype; + set_labelsym_resultdef; result:=true; end else if (realsource.nodetype=loadn) and