This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/12032] New: flag -fnew-ra does not work! In the description you'll find the source AND all relevant information.


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12032

           Summary: flag -fnew-ra does not work! In the description you'll
                    find the source AND all relevant information.
           Product: gcc
           Version: 3.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: haefele at mpi-magdeburg dot mpg dot de
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: GNU F77 version 3.3.1 20030626 (Debian prerelease)
                    (i386-linux)
  GCC host triplet: i386-linux
GCC target triplet: i386-linux

hawk:[std]> g77 -v -save-temps -w -pipe -finit-local-zero -fnew-ra -Isource/sim/
misc -D__unix__ -Isource/mod/signal/saett/  -O3 -march=pentiumpro -funroll-loops
 -malign-double -falign-functions=4 -fexpensive-optimizations -fschedule-insns2 
-ffloat-store -fomit-frame-pointer -c -o obj/intel-linux-glibc2.1/opt-dab02i.o s
ource/mod/signal/saett/dab02i.f
g77: warning: -pipe ignored because -save-temps specified
Reading specs from /usr/lib/gcc-lib/i386-linux/3.3.1/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,ob
jc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info 
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib -
-enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gn
u --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc 
i386-linux
Thread model: posix
gcc version 3.3.1 20030626 (Debian prerelease)
 /usr/lib/gcc-lib/i386-linux/3.3.1/f771 source/mod/signal/saett/dab02i.f -quiet 
-dumpbase dab02i.f -march=pentiumpro -malign-double -auxbase-strip obj/intel-lin
ux-glibc2.1/opt-dab02i.o -O3 -w -version -finit-local-zero -fnew-ra -funroll-loo
ps -falign-functions=4 -fexpensive-optimizations -fschedule-insns2 -ffloat-store
 -fomit-frame-pointer -Isource/sim/misc -Isource/mod/signal/saett/ -o dab02i.s
GNU F77 version 3.3.1 20030626 (Debian prerelease) (i386-linux)
        compiled by GNU C version 3.3.1 20030626 (Debian prerelease).
GGC heuristics: --param ggc-min-expand=42 --param ggc-min-heapsize=23893
source/mod/signal/saett/dab02i.f:1: internal compiler error: in select_spill, at
 ra-colorize.c:1002



---------------------
Here goes the source (I did not find a place where to upload a zipped version of it)
---------------------


        SUBROUTINE DAB02I(PLANT,VERNR,BNAME,BNR, 
     #                   X,XMIN,XMAX,XABS,CX,
     1                   CU,
     #                   PHIERR,CPHI,
     #                   NX,NU,NY,NPHI,
     #                   IOUT, CY,
     #                   RPAR,CRPAR,NRP,IPAR,CIPAR,LIPAR,NIP,CPAR,CCPAR,
     #                   NCP,RWORK,NRW,IWORK,NIW,CWORK,NCW,
     #                   ICFX,IRFX,NFX,
     #                   ICFU,IRFU,NFU,
     #                   ICB,IRB,NB,
     #                   ICBX,IRBX,NBX,
     #                   ICBU,IRBU,NBU,
     #                   IDUM1,IDUM2,IDUM3,IDUM4,IDUM5,IDUM6,IDUM7,
     #                   IDUM8,IDUM9,IDUM10,IDUM11,IDUM12,IDUM13,
     #                   IDUM14, 
     #                   MESID, MESTXT, SEVRTY) 
C
      IMPLICIT NONE
C
C***********************************************************************
C                                                  DIVA V3
C  File  :  DAB02I.FOR
C  Autor :  T.Obertopp
C  Datum :  20-September-1991
C
C  Datum     Bearbeiter    Kommentar
C  15.02.93  G. Hutzl      alternative Return-Anweisung entfernt
C                          (in der Parameterklammer und beim Ruecksprung)
C
C***********************************************************************
C<FF>
C     Aufgabe des Programms:
C     ----------------------
C
C       Initialisierung eines DIVA-Grundelement zu einen eindeutigen
C       Block in einer Anlage.
C
C***********************************************************************
C<FF>
C       Benoetigte Unterprogramme:
C
C       DSSPAT      Stoffdateninitialisierung (Belegung der Parameter-
C                   klammer siehe Programmieranleitung)
C                          
C
C***********************************************************************
C
C       Definition der Variablen    > Eingangsvariable
C                                   < Ausgangsvariable
C                                   * Ein- und Ausgangsvariable
C                                   - Groesse wird nicht benoetigt
C                                   L lokale Variable
C                                   C.Variable eines COMMON-Blocks
C
C************************************************************************
C     VARIABLE:
C--------------
      CHARACTER*(*)    BNAME
C                              > Name des Blocks in der Anlage
      CHARACTER*10     CDUM
C                              L Dummy
      CHARACTER*(*)    DNAME   
C                              L DIVA-Name des Blocks, benannte Konstante
      CHARACTER*(*)    MESTXT
C                              > Klartext oder Parameter f"ur Message
      CHARACTER*(*)    PLANT
C                              > Name der Anlage 

      INTEGER          BUFLEN
C                              l Ben"otigte L"ange von DATBUF
      INTEGER          BNR
C                              > Blocknummer; von DIVA erzeugt
      INTEGER          DNIP
C                              > Arbeitsvariable fuer IPAR
      INTEGER          IDUM1,IDUM2,IDUM3,IDUM4,IDUM5,IDUM6,IDUM7,
     #                 IDUM8,IDUM9,IDUM10,IDUM11,IDUM12,IDUM13,
     #                 IDUM14
C                              - dummy input variables, they must not be
C                                referenced within this program
      INTEGER          JDUM1,JDUM2,JDUM3,JDUM4,JDUM5,JDUM6,JDUM7,
     #                 JDUM8,JDUM9,JDUM10,JDUM11,JDUM12,JDUM13,
     #                 JDUM14,JDUM15,JDUM16,JDUM17,JDUM18,JDUM19,
     #                 JDUM20,JDUM21,JDUM22,JDUM23,JDUM24,JDUM25,
     #                 JDUM26,JDUM27,JDUM28,JDUM29,JDUM30,I
C                              - Dummy-Variablen            
      INTEGER          KEYLEN
C                              L Anzahl der Proz.gr. 
      INTEGER          MESID
C                              * Nummer der Message und des
C                                Messageformats 
      INTEGER          MAXSTA
C                              L max. Anzahl von STates in Proz.gr.
      INTEGER          MNB
C                              L Arbeitsvariable f"ur NB
      INTEGER          MNBU
C                              L Arbeitsvariable f"ur NBU
      INTEGER          MNBX
C                              L Arbeitsvariable f"ur NBX
      INTEGER          MNCP      
C                              L Arbeitsvariable f"ur NCP
      INTEGER          MNCW
C                              L Arbeitsvariable f"ur NCW        
      INTEGER          MNFU
C                              L Arbeitsvariable f"ur NFU         
      INTEGER          MNFX
C                              L Arbeitsvariable f"ur NFX       
      INTEGER          MNIP
C                              L Arbeitsvariable f"ur NIP         
      INTEGER          MNIW
C                              L Arbeitsvariable f"ur NIW        
      INTEGER          MNPHI   
C                              L Arbeitsvariable f"ur NPHI
      INTEGER          MNRP
C                              L Arbeitsvariable f"ur NRP        
      INTEGER          MNRW
      SAVE             MNRW
C                              L Arbeitsvariable f"ur NRW        
      INTEGER          MNU     
C                              L Arbeitsvariable f"ur NU
      INTEGER          MNX
C                              L Arbeitsvariable f"ur NX
      INTEGER          MNY
C                              L Arbeitsvariable f"ur NY  
      INTEGER          NB
C                              *>noch freie Länge für Matrix B
C                               <tatsächlich benötigte Länge für B
      INTEGER          NBU
C                              *>noch freie Länge für Matrix dbeta/du
C                               <tatsächlich benötigte Länge dbeta/du
      INTEGER          NBX
C                              *>noch freie Länge für Matrix dbeta/deta
C                               <tatsächlich benötigte Länge dbeta/deta
      INTEGER          NCP
C                              *>noch freie Länge für Character-Parameter
C                               <tatsächlich benötigte Anz. Char.-Par.
      INTEGER          NCW
C                              > Länge des Character-Arbeitsfeld
C                                (DARF NICHTR VERÄNDERT WERDEN!)                
      INTEGER          NFU
C                              *>noch freie Länge für Matrix df/du
C                               <tatsächlich benötigte Länge df/du
      INTEGER          NFX
C                              *>noch freie Länge für Matrix df/deta
C                               <tatsächlich benötigte Länge df/deta
      INTEGER          NIP
C                              *>noch freie Länge für Integer-Parameter
C                               <tatsächlich benötigte Anz. Integer-Par.
      INTEGER          NISP
C                              L Anzahl der Strukturparameter     
      INTEGER          NIW
C                              > Länge des Integer-Arbeitsfeld
C                                (DARF NICHTR VERÄNDERT WERDEN!)                
      INTEGER          NPHI
C                              *>noch freie Länge für Eventvektor PHI
C                               <tatsächlich benötigte Länge PHI
      INTEGER          NRP
C                              *>noch freie Länge für REAL-Parameter
C                               <tatsächlich benötigte Anz. REAL-Par.
      INTEGER          NRW
C                              > max. Länge des REAL-Arbeitsfeldes
C                                (DARF NICHTR VERÄNDERT WERDEN!)                
      INTEGER          NU
C                              *>noch freie Länge für Eingangsvektor
C                               <tatsächlich benötigte Länge Eingangsv.
      INTEGER          NX 
C                              *>noch freie Länge für Zustandsvektor
C                               <tatsächlich benötigte Länge Zustandsv.
      INTEGER          NY
C                              *>noch freie Länge für Ausgangsvektor
C                               <tatsächlich benötigte Länge Ausgangsv.
C
      INTEGER          OFFH1, OFFH2, OFFH3
C
C
      INTEGER          SEVRTY
C                              * Severitycode der Mesage und Fehlerflag
C                                f"ur die Ausf"uhrung des Programms.
C                               Bei Aufruf:
C                                = 0 normale Initialisierung
C                                < 0 nur Feldlängenübergabe; keine
C                                    "Anderung von SEVRTY!
C                               Bei R"ucksprung:
C                                = 0 Initialisierung ohne Fehler
C                                # 0 Initialisierung mit Fehler oder
C                                    Error oder SEVRTY < 0 bei Aufruf.
      INTEGER          SPACEX, SPACEY, SPACEZ
C                              L Stuetzstellenzahl 
      INTEGER          STAPPG
C                              L States pro Proz.gr.
      INTEGER          VERNR
C                              > Versionsnummer der Anlage
***********************************************************************
C    Felder:
C-----------
      CHARACTER*(*)    CCPAR(1)
C                              < Name der Character-Parameter
      CHARACTER*(*)    CIPAR(1)
C                              < Name der Integer-Parameter
      CHARACTER*(*)    CPAR(1)
C                              < Character-Parameter
      CHARACTER*(*)    CPHI(1)
C                              < Name der Eventfunktionen
      CHARACTER*(*)    CWORK(NCW)
C                              > Character-Arbeitsfeld
      CHARACTER*(*)    CRPAR(1)
C                              < Name der Real-Parameter
      CHARACTER*(*)    CU(1)
C                              < Name der Eingangsgr"o"sen
      CHARACTER*(*)    CX(1)
C                              < Name der Zustandsgr"o"sen
      CHARACTER*(*)    CY(1)
C                              < Name der Ausgangsgr"o"sen
      DOUBLE PRECISION PHIERR(1)
C                              < abs. Breite des Schaltbereichs der
C                                Eventfunktionen
      DOUBLE PRECISION RPAR(1)
C                              < Real-Parameter
      DOUBLE PRECISION RWORK(1)
C                              > Real-Arbeitsfeld
      DOUBLE PRECISION X(1)
C                              < Zustandsvektor
      DOUBLE PRECISION XABS(1)
C                              < abs. Fehler der Zustände
      DOUBLE PRECISION XMAX(1)
C                              < Maximalwert der Zustände
      DOUBLE PRECISION XMIN(1)
C                              < Minimalwert der Zustände
      INTEGER          FBLO(1)
C                              > Nr. der Gleichung in der Stoffdaten-
C                                einflussmatrix (Arbeitsfeld)
      INTEGER          ICB(1)
C                              < Spaltennr. der Elemente der Matrix B
      INTEGER          ICBU(1)
C                              < Spaltennr. der Elemente der Matrix
C                                dbeta/du
      INTEGER          ICBX(1)
C                              < Spaltennr. der Elemente der Matrix
C                                dbeta/deta
      INTEGER          ICFU(1)
C                              < Spaltennr. der Elemente der Matrix
C                                df/du
      INTEGER          ICFX(1)
C                              < Spaltennr. der Elemente der Matrix
C                                df/deta
      INTEGER          IOUT(1)
C                              < Zuordnung der Zustände zu Ausgängen
      INTEGER          IPAR(1)
C                              < Integer-Parameter
      INTEGER          IRB(1)
C                              < Zeilennr. der Elemente der Matrix B
      INTEGER          IRBU(1)
C                              < Zeilennr. der Elemente der Matrix
C                                dbeta/du
      INTEGER          IRBX(1)
C                              < Zeilennr. der Elemente der Matrix
C                                dbeta/deta
      INTEGER          IRFU(1)
C                              < Zeilennr. der Elemente der Matrix
C                                df/du
      INTEGER          IRFX(1)
C                              < Zeilennr. der Elemente der Matrix
C                                df/deta
      INTEGER          IWORK(1)
C                              > Integer-Arbeitsfeld
      LOGICAL          LIPAR(1)
C                                < .TRUE.  f"ur Strukturparameter
C                                  .FALSE. f"ur Integerparameter
C**********************************************************************
      EXTERNAL DSESLE
      INTEGER  DSESLE
C**********************************************************************
C
C  Parameter:
C------------
      PARAMETER        (DNAME='DAB02')
C
C**********************************************************************
C  >> Zuweisung f"ur ben"otigte Anzahl an Strukturparametern
C      
      NISP = 0      
C
C
C  >> Zuweisungen f"ur ben"otigte Feldl"angen
C
C   > Anlagenvektoren
C
      MNX   = 1
      MNU   = 1
      MNY   = 1
      MNPHI = 2
C
C   > Parameterfelder
C  
      MNRP = 4
      MNIP = 1
      MNCP = 0          
C
C   > Matrizen
C
      MNB  = 0
      MNBX = 0
      MNBU = 0
      MNFX = 1
      MNFU = 1
C
      MNCW = 3 + 3 + 3 + 3 * 4
C
C
      MNIW = 0
      MNRW = 0
      JDUM1 = 0
      JDUM2 = 0
      JDUM3 = 0
      JDUM4 = 0
      JDUM5 = 0
      JDUM6 = 0
      JDUM7 = 0
      JDUM8 = 0
      JDUM9 = 0
      JDUM10= 0
      JDUM11= 0
      JDUM12= 0
C
C  >> Vergleich zwischen ben"otigten und freien L"angen
C
      CALL DSEMCK (SEVRTY,BNAME,DNAME,BNR                          
     #            ,NX,NU,NY,NPHI,NRP,NIP,NCP,NRW,NIW                
     #            ,NCW,NFX,NFU,NB,NBX,NBU                           
     #            ,JDUM1,JDUM2,JDUM3,JDUM4,JDUM5                    
     #            ,MNX,MNU,MNY,MNPHI,MNRP,MNIP,MNCP,MNRW,MNIW       
     #            ,MNCW,MNFX,MNFU,MNB,MNBX,MNBU                     
     #            ,JDUM6,JDUM7,JDUM8,JDUM9,JDUM10,JDUM11,JDUM12)


C  >> Belegung des ben"otigten Platzes                       
C
      CALL DSEMST (NX,NU,NY,NPHI,NRP,NIP,NCP
     #             ,JDUM13,JDUM14,JDUM15
     #             ,NFX,NFU,NB,NBX,NBU
     #             ,JDUM16,JDUM17,JDUM18,JDUM19,JDUM20
     #             ,MNX,MNU,MNY,MNPHI,MNRP,MNIP,MNCP
     #             ,JDUM21,JDUM22,JDUM23
     #             ,MNFX,MNFU,MNB,MNBX,MNBU
     #             ,JDUM24,JDUM25,JDUM26,JDUM27,JDUM28,JDUM29,JDUM30)
C
C
      IF (SEVRTY .LT. 0) THEN
        RETURN
      ENDIF
C
C
C Der Integer-Parameter wird lediglich fuer die Uebergabe der aktuellen
C Modellnummer zwischen F- und P-Programm benoetigt:
      DNIP = 0
C
C  >> Blockdaten einlesen 
C
      CALL PARWER (PLANT,VERNR,BNAME,CX,NX,X,XMIN,XMAX,XABS,
     *             CU,NU,CY,NY,CPHI,PHIERR,NPHI,CRPAR,NRP,RPAR,
     *             CIPAR(NISP+1),DNIP,IPAR(NISP+1),CCPAR,NCP,CPAR,
     *             MESID,MESTXT)
C
C
C MSH \/\/\/\/ MSH
        DO 1234 I = DNIP+1, NIP
           WRITE(CDUM,'(I10)') (I-DNIP-1)
           print *,'CDUM: ',CDUM
           CALL DELBLA(CDUM)
           WRITE(CIPAR(I),'(A10,A)') '_CGH HELP',CDUM(1:DSESLE(CDUM))
 1234   CONTINUE
C MSH /\/\/\/\ MSH

      IF (MESID .NE. 0) THEN
        RETURN
      ENDIF
C
C
C  >> Belegen von Teilstrukturen des Patterns von Matrizen
C
      ICFX(1) = 1
      IRFX(1) = 1
      ICFU(1) = 1
      IRFU(1) = 1
C
C
C  >> Zuordnung des Zustands zum Ausgang
C
      IOUT(1) = 1
C
C
C  >> Schreibschl"ussel definieren
C
      KEYLEN    = 3
      CWORK(1)(1:10) = BNAME(1:5)//CX(1)(1:5)
      CWORK(2)(1:10) = BNAME(1:5)//CU(1)(1:5)
      CWORK(3)(1:10) = BNAME(1:5)//CY(1)(1:5)

      DO 2000 I = 1,3
         IWORK(I)  = 1
 2000 CONTINUE


      DO 400 I=1,3*KEYLEN
        IWORK(3+I) = 1
400   CONTINUE

C 1.Proze"sgr"o"se
      CWORK(4)(1:10) = CX(1)(6:15)

C 2.Proze"sgr"o"se
      CWORK(5)(1:10) = CU(1)(6:15)

C 3.Proze"sgr"o"se
      CWORK(6)(1:10) = CY(1)(6:15)

C     Adressrechnung der zus"atzlich ben"otigten Hilfsfelder
        MAXSTA = 1
        OFFH1  = 7
        OFFH2  = OFFH1 + KEYLEN*MAXSTA
        OFFH3  = 3 + 3*KEYLEN + 1

      CALL DSEDIW (BNAME, KEYLEN, CWORK(1), IWORK(1),
     *             IWORK(4), IWORK(4+KEYLEN), IWORK(4+2*KEYLEN),
     *             CWORK(4), BUFLEN,
     *             CWORK(OFFH1),CWORK(OFFH2),IWORK(OFFH3),MAXSTA,
     *             MESID, MESTXT, SEVRTY)
            
C----FORMATE-------------------------------------------------------------
C
C************************************************************************
C     End of file DAB02I.FOR
         RETURN
      END


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]