Compatibility between gcc and g77 : Pointer problem ?
THIERRY LEININGER
leininge@pqtlx2.ups-tlse.fr
Tue Jun 15 03:53:00 GMT 1999
Hi
by using the following programs
test.f
====
PROGRAM Test
DOUBLE PRECISION A,B,C
INTEGER I
A = 1.D0
B = 2.D0
C = 3.D0
I = 4
Ires = adresse(A,B,C,I)
PRINT *,'Done'
STOP
END
and
adresse.c
========
#include<stdlib.h>
#include<stdio.h>
adresse_(Pa,Pb,Pc,Pi)
double *Pa;
double *Pb;
double *Pc;
int *Pi;
{
printf("\n Adresse de a = %ld et a %lf \n",Pa,*Pa);
printf("\n Adresse de b = %ld et b %lf \n",Pb,*Pb);
printf("\n Adresse de c = %ld et c %lf \n",Pc,*Pc);
printf("\n Adresse de i = %ld et i %ld \n",Pi,*Pi);
return(1);
}
We do get the following result
--------------------------------
Adresse de a = -1073743828 et a 1.000000
Adresse de b = -1073743836 et b 2.000000
Adresse de c = -1073743844 et c 3.000000
Adresse de i = -1073743848 et i 4
Done
--------------------------------
when compiling test.f with g77 and,
-------------------------------
Adresse de a = 134553472 et a 1.000000
Adresse de b = 134553480 et b 2.000000
Adresse de c = 134553488 et c 3.000000
Adresse de i = 134553496 et i 4
Done
--------------------------------
when compiling with fort77 version 1.14a.
Why on earth do we get negative adresses with g77?
We also have problems freeing memory.
Below is the output of g77 --verbose as coming with RedHat 6.0 and kernel
2.2.5-15.
g77 version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (from FSF-g77 version 0.5.24-19981002)
Driving: g77 -v -c -xf77-version /dev/null -xnone
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D_LANGUAGE_FORTRAN -traditional -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ /dev/null /dev/null
GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/i386-redhat-linux/include
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
/usr/include
End of search list.
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/f771 -fnull-version -quiet -dumpbase g77-version.f -version -fversion -o /tmp/cc4lekGS.s /dev/null
GNU F77 version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
GNU Fortran Front End version 0.5.24-19981002
as -V -Qy -o /tmp/cc0eSlUB.o /tmp/cc4lekGS.s
GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23
ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o /tmp/ccYezHEm /tmp/cc0eSlUB.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtbegin.o -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -L/usr/i386-redhat-linux/lib -lg2c -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtend.o /usr/lib/crtn.o
/tmp/ccYezHEm
__G77_LIBF77_VERSION__: 0.5.24
@(#)LIBF77 VERSION 19970919
__G77_LIBI77_VERSION__: 0.5.24-19981021
@(#) LIBI77 VERSION pjw,dmg-mods 19980617
__G77_LIBU77_VERSION__: 0.5.24-19990305
@(#) LIBU77 VERSION 19980709
Thank you for your help and
my best regards,
Thierry
--
***********************************************************************
Thierry Leininger
Laboratoire de Physique Quantique Tel : +33 5 61 55 68 36
IRSAMC Fax : +33 5 61 55 60 65
Universite Paul Sabatier
118, route de Narbonne
F - 31062 Toulouse Cedex
***********************************************************************
More information about the Gcc-bugs
mailing list