This patch

http://gcc.gnu.org/ml/gcc-patches/2006-11/msg00141.html

triggers uninitialized read of stack register on x86. The testcase is

# cat foo.f90
MODULE foo
CONTAINS
   SUBROUTINE SWPARA(IU, JU, IIL, JJL, XI, YJ, XALB, kts,kte)
  INTEGER, INTENT(IN ) ::                 kts,kte
  INTEGER, INTENT(IN ) ::                 IU, JU, IIL, JJL
   REAL, INTENT(IN  )   ::               XI, YJ
   REAL, INTENT(OUT)  ::                                   XALB

   REAL, DIMENSION( 4, 5 ) ::                             ALBTAB
      DATA ALBTAB/0.,0.,0.,0., &
           69.,58.,40.,15.,    &
           90.,80.,70.,60.,    &
           94.,90.,82.,78.,    &
           96.,92.,85.,80./
      XALB = 0.0
      DO 200 K=kts,kte
         ALBA=(ALBTAB(IU,JU)*(XI-IIL)*(YJ-JJL)   &
              +ALBTAB(IIL,JU)*(IU-XI)*(YJ-JJL)   &
              +ALBTAB(IU,JJL)*(XI-IIL)*(JU-YJ)   &
              +ALBTAB(IIL,JJL)*(IU-XI)*(JU-YJ))  &
             /((IU-IIL)*(JU-JJL))
        XALB = ALBA - XALB
  200   CONTINUE
   END SUBROUTINE SWPARA
END MODULE foo

# gfortran -O2 -S -o bad.s foo.f90 -da

shows

(insn:TI 55 147 171 3 (set (reg:SF 8 st)
        (mult:SF (reg:SF 8 st)
            (reg:SF 11 st(3)))) 416 {*fop_sf_comm_i387} (nil)
    (nil))

But SF 11 is never initialized.


-- 
           Summary: [4.3 regression]: fwprop triggers uninitialized read
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl at lucon dot org
GCC target triplet: i686-pc-linux-gnu


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

Reply via email to