Nathalie Jarosz wrote:
I have change of system: from linux, I am on a Unix workstation and when I compile program which used to work under linux, the following message appears: "Internal compiler error in 'emit_library_call_value', at calls.c:3198"
What does it mean?
Exactly what it said: you just found bug in GPC itself (calls.c is part of GPC). In such cases you REALLY must supply all details: 1. What type of unix you are using (CPU version, OS version, etc). Sun Microsystems Inc. SunOS 5.7
2. What type of GPC you are using (built against GCC v..., GPC v..., etc). gpc version 19991030 based on 2.95.2 19991024
3. Sample code to get internal error. ?
Here is the routine which is involved:
function travel(djk:real;md:mat;A:minitable;Ak:real;ns,j:integer):real; {probability of an individual leaving patch j to reach patch k} const alpha = 4.910; zim = 0.263; lambda = 0.175; var Sj,t : real; begin Sj:=connect(md,A,ns,j); t:=(exp(-alpha*djk)*pow2(Ak,zim))/((lambda/Sj)+Sj); travel:=t; end;
This is exactly the same GPC bug that Clyde Meli has just reported. As I wrote last night, this bug has been fixed meanwhile. According to the `Fixed Bugs' section in the To-Do list <http://agnes.dida.physik.uni-essen.de/~gnu-pascal/todo.html>: 20000503: Sparc: division by reals (fjf237.pas, matt1.pas) or `Round (real_constant)' (chaput1.pas) make the compiler crash <199911040915.KAA11168@@humulus.daimi.au.dk> (Sparc is the processor used in Sun's machines.) Until there is a new GPC release with this bug fixed, you can work around by type-casting the constants to Real: const alpha = Real (4.910); zim = Real (0.263); lambda = Real (0.175); Frank -- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/ GPC To-Do list, latest features, fixed bugs: http://agnes.dida.physik.uni-essen.de/~gnu-pascal/todo.html
participants (1)
-
Frank Heckenbach