mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 05:29:30 +02:00
default(): fix in generics for non-procvars after 1be7416816
Block added in the wrong place :| Resolves #40409
This commit is contained in:
parent
c09e8778bd
commit
a9f3906dd5
@ -490,7 +490,18 @@ implementation
|
||||
begin
|
||||
if not assigned(left) or (left.nodetype<>typen) then
|
||||
internalerror(2012032102);
|
||||
|
||||
def:=ttypenode(left).typedef;
|
||||
if df_generic in current_procinfo.procdef.defoptions then
|
||||
begin
|
||||
{ don't allow as a default parameter value }
|
||||
if block_type<>bt_const then
|
||||
result:=cpointerconstnode.create(0,def)
|
||||
else
|
||||
result:=cerrornode.create;
|
||||
exit;
|
||||
end;
|
||||
|
||||
result:=nil;
|
||||
case def.typ of
|
||||
enumdef,
|
||||
@ -505,16 +516,7 @@ implementation
|
||||
pointerdef:
|
||||
result:=cpointerconstnode.create(0,def);
|
||||
procvardef:
|
||||
if df_generic in current_procinfo.procdef.defoptions then
|
||||
begin
|
||||
{ don't allow as a default parameter value }
|
||||
if block_type<>bt_const then
|
||||
result:=cpointerconstnode.create(0,def)
|
||||
else
|
||||
result:=cerrornode.create;
|
||||
exit;
|
||||
end
|
||||
else if tprocvardef(def).size<>sizeof(pint) then
|
||||
if tprocvardef(def).size<>sizeof(pint) then
|
||||
result:=getdefaultvarsym(def)
|
||||
else
|
||||
result:=cpointerconstnode.create(0,def);
|
||||
|
Loading…
Reference in New Issue
Block a user