From: wayne lydecker <wlydeckr@pacbell.net>
Subject: stack frame too large
Date: 2000/11/10
Date: 2000-11-10T00:00:00+00:00 [thread overview]
Message-ID: <3A0C9FB8.9EBC9A7F@pacbell.net> (raw)
We are experiencing a rather severe error using Alsys on HP.
Evidently we are overflowing a stack frame which is causing
a corrupted heap. Because I am playing with GNAT, I decided
to see if I can get more information using that compiler while
using the -fstack-check switch. GNAT does indeed complain:
frame size too large for reliable stack checking
try reducing the number of local variables
I have been able to distill the error down to a very fundamental
set of code. If I call a procedure that calls a function to
return an array of 2000 integers, I get the error. 1000
integers works fine. If anyone can shed light on this unusual
problem, I would be most grateful. I compile it with:
gnatmake -g test -cargs -fstack-check
Here's the exact warning from GNAT:
fifo_queue.adb: In function `fifo_queue__deque':
fifo_queue.adb:11: warning: frame size too large for reliable stack checking
fifo_queue.adb:11: warning: try reducing the number of local variables
Here's the code (suitable for gnatchop).
Thanks,
-- Wayne.
package Fifo_Queue is
type Data_Type is array (1..2000) of Integer;
procedure Deque (Data : out Data_Type);
end Fifo_Queue;
package body Fifo_Queue is
My_Data : Data_Type := (others => 0);
function Deque return Data_Type is
begin
return My_Data;
end Deque;
procedure Deque (Data : out Data_Type) is
begin
Data := Deque; -- Line 11 as reported in warning.
end Deque;
end Fifo_Queue;
with fifo_queue;
procedure test is
begin
null;
end;
next reply other threads:[~2000-11-10 0:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-11-10 0:00 wayne lydecker [this message]
2000-11-11 0:00 ` stack frame too large Marc A. Criley
2000-11-11 0:00 ` Wayne Lydecker
2000-11-11 0:00 ` Jeff Creem
2000-11-12 0:00 ` Marc A. Criley
2000-11-11 0:00 ` David Starner
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox