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