Hi,
What is the status as far as using optimization is concerned? Is it supposed to be usable? If so I have a problem...
I'm on a Solaris 2.6 Ultra 1 using GPC 2.1 (based on GCC 2.95.2). Source code showing the problem is below.
When I build and run with the commands:-
gpc -c opt.pas gpc -c -DMYMODULE opt.pas -o lichkp1.o gpc opt.o lichkp1.o a.out
I see "ok" but if I use -O i.e.
gpc -c opt.pas gpc -c -DMYMODULE opt.pas -o lichkp1.o -O gpc opt.o lichkp1.o a.out
I see "failed". Can anyone help?
Cheers, Martin G C Davies.
#if defined MYMODULE module opt; #else program opt(output); #endif
const lmpages = 24576 ; lcpgsize = 4096 ; lcpgctrl = 28 ; lmalloc = lcpgsize - lcpgctrl - 4 ;
type mylupage = record number : packed 0..lmpages ; datadisp : packed 0..lmalloc end ; mylopage = ^mylupage;
function lichkp1( mypage : mylopage ) : boolean ; external ;
#if defined MYMODULE function lichkp1( mypage : mylopage ) : boolean ; begin if mypage^.number <> 1 then lichkp1 := false else if ( mypage^.datadisp < lcpgctrl ) or ( mypage^.datadisp > ( lmalloc div 8 ) ) then lichkp1 := false else lichkp1 := true ; end ; #else var mypage : mylupage ; begin mypage.number := 1 ; mypage.datadisp := lcpgctrl ;
if lichkp1(addr(mypage)) then writeln('ok') else writeln('failed'); #endif end.