public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/43866]  New: wrong code with -O3 -fbounds-check
@ 2010-04-23  9:14 jv244 at cam dot ac dot uk
  2010-04-23  9:21 ` [Bug middle-end/43866] wrong code with -fbounds-check -funswitch-loops jv244 at cam dot ac dot uk
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: jv244 at cam dot ac dot uk @ 2010-04-23  9:14 UTC (permalink / raw)
  To: gcc-bugs

compiling the testcase below with

gfortran -O3 -fbounds-check 

yields under 'valgrind --tool=memcheck ./a.out'

 ==23130==
==23130== Conditional jump or move depends on uninitialised value(s)
==23130==    at 0x4008BD: __m1_MOD_cp_fm_upper_to_full (in
/data03/vondele/bugs/ttt/a.out)
==23130==    by 0x400FD7: MAIN__ (in /data03/vondele/bugs/ttt/a.out)
==23130==    by 0x401059: main (fmain.c:21)
==23130==
==23130== ERROR SUMMARY: 16 errors from 1 contexts (suppressed: 3 from 1)

the valgrind error is absent if '-O2 -fbounds-check' is being employed.

This happens with trunk as well as older versions.

Testcase:

MODULE M1
  INTEGER, PARAMETER :: sp=4, dp=8
  TYPE cp_fm_type
     REAL(KIND=sp), DIMENSION(:,:), POINTER :: local_data_sp
     REAL(KIND=dp), DIMENSION(:,:), POINTER :: local_data
     INTEGER :: nrow_global,ncol_global
     LOGICAL :: use_sp
  END TYPE
CONTAINS
  SUBROUTINE cp_fm_upper_to_full(matrix,work)
    TYPE(cp_fm_type), POINTER          :: matrix,work
    INTEGER :: irow_global, ncol_global, nrow_global
    REAL(KIND = dp), DIMENSION(:,:), POINTER :: a
    REAL(KIND = sp), DIMENSION(:,:), POINTER :: a_sp

    nrow_global=matrix%nrow_global
    ncol_global=matrix%ncol_global
    a => matrix%local_data
    a_sp => matrix%local_data_sp

    DO irow_global=1,nrow_global
       DO icol_global=irow_global+1,ncol_global
          IF(matrix%use_sp) THEN
             a_sp(icol_global,irow_global)=a_sp(irow_global,icol_global)
          ELSE
             a(icol_global,irow_global)=a(irow_global,icol_global)
          ENDIF
       ENDDO
    ENDDO
  END SUBROUTINE cp_fm_upper_to_full
END MODULE M1

  USE M1
  TYPE(cp_fm_type), POINTER :: a,b
  INTEGER :: N
  N=17
  ALLOCATE(a,b)
  ALLOCATE(a%local_data(N,N),b%local_data(N,N))
  a%nrow_global=N
  a%ncol_global=N
  b%nrow_global=N
  b%ncol_global=N
  a%use_sp=.FALSE.
  b%use_sp=.FALSE.
  a%local_data=0
  CALL cp_fm_upper_to_full(a,b)
END


-- 
           Summary: wrong code with -O3 -fbounds-check
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jv244 at cam dot ac dot uk


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


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2010-06-30 15:34 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-23  9:14 [Bug middle-end/43866] New: wrong code with -O3 -fbounds-check jv244 at cam dot ac dot uk
2010-04-23  9:21 ` [Bug middle-end/43866] wrong code with -fbounds-check -funswitch-loops jv244 at cam dot ac dot uk
2010-04-23  9:25 ` jv244 at cam dot ac dot uk
2010-04-23 10:30 ` jv244 at cam dot ac dot uk
2010-04-23 12:30 ` rguenth at gcc dot gnu dot org
2010-04-23 13:32 ` jv244 at cam dot ac dot uk
2010-04-23 17:29 ` [Bug middle-end/43866] [4.3/4.4/4.5/4.6 Regression] " jv244 at cam dot ac dot uk
2010-04-26 11:07 ` jv244 at cam dot ac dot uk
2010-05-14 12:57 ` rguenth at gcc dot gnu dot org
2010-05-22 14:09 ` jv244 at cam dot ac dot uk
2010-05-22 19:00 ` rguenth at gcc dot gnu dot org
2010-06-24 13:31 ` jakub at gcc dot gnu dot org
2010-06-24 16:21 ` jakub at gcc dot gnu dot org
2010-06-24 16:24 ` jakub at gcc dot gnu dot org
2010-06-24 16:47 ` jakub at gcc dot gnu dot org
2010-06-24 20:49 ` rguenth at gcc dot gnu dot org
2010-06-25  8:13 ` jakub at gcc dot gnu dot org
2010-06-25  9:04 ` rakdver at gcc dot gnu dot org
2010-06-25  9:12 ` rakdver at gcc dot gnu dot org
2010-06-25  9:15 ` jakub at gcc dot gnu dot org
2010-06-25  9:20 ` jakub at gcc dot gnu dot org
2010-06-25  9:29 ` jv244 at cam dot ac dot uk
2010-06-25  9:39 ` jakub at gcc dot gnu dot org
2010-06-25 12:11 ` jakub at gcc dot gnu dot org
2010-06-25 12:31 ` jakub at gcc dot gnu dot org
2010-06-30 15:34 ` [Bug middle-end/43866] [4.3/4.4/4.5 " jakub at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).