mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-04 23:47:26 +01:00
* turn off stackframe optimizations on x86 if get_frame is called
in the current routine, or if the address of a nested function
is taken in the current routine
+ test for the above
* this fixes the IDE when compiled with stackframe optimizations
on x86
git-svn-id: trunk@5146 -
40 lines
464 B
ObjectPascal
40 lines
464 B
ObjectPascal
type
|
|
PointerLocal = procedure(_EBP: Pointer);
|
|
|
|
procedure proccall(p: pointer);
|
|
begin
|
|
PointerLocal(p)(get_caller_frame(get_frame));
|
|
end;
|
|
|
|
procedure t1;
|
|
var
|
|
l : longint;
|
|
|
|
procedure t2;
|
|
|
|
procedure t3;
|
|
|
|
procedure t4;
|
|
begin
|
|
l := 5;
|
|
end;
|
|
|
|
begin { t3 }
|
|
proccall(@t4);
|
|
end;
|
|
|
|
begin { t2 }
|
|
t3;
|
|
end;
|
|
|
|
begin { t1 }
|
|
l := 0;
|
|
t2;
|
|
if (l <> 5) then
|
|
halt(1);
|
|
end;
|
|
|
|
begin
|
|
t1;
|
|
end.
|