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 middle-end/58290] New: [4.9 Regression] error: virtual definition of statement not up-to-date


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

            Bug ID: 58290
           Summary: [4.9 Regression] error: virtual definition of
                    statement not up-to-date
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: Joost.VandeVondele at mat dot ethz.ch

Trunk yields:

bug.f90: In function âdbcsr_buffers_flushâ:
bug.f90:28:0: error: virtual definition of statement not up-to-date
   SUBROUTINE dbcsr_buffers_flush (buffers)
 ^
# .MEM_4 = VDEF <.MEM_2(D)>
_5 = dbcsr_buffers_get_num (buffers_3(D));
bug.f90:28:0: internal compiler error: verify_ssa failed
0xb62c24 verify_ssa(bool)
    ../../gcc/gcc/tree-ssa.c:1046
0x9217de execute_function_todo
    ../../gcc/gcc/passes.c:1834


when compiling

> gfortran -c -fipa-pta -O1 -c  bug.f90

> cat bug.f90
MODULE dbcsr_types
  INTEGER, PARAMETER :: dbcsr_error_stack_size = 30
  TYPE dbcsr_error_stack_type
     CHARACTER(80), DIMENSION(dbcsr_error_stack_size) :: s = ''
  END TYPE dbcsr_error_stack_type
  TYPE dbcsr_error_type
   TYPE(dbcsr_error_stack_type) :: stack
  END TYPE dbcsr_error_type
  TYPE dbcsr_data_obj
  END TYPE dbcsr_data_obj
  TYPE dbcsr_block_buffer_type
     TYPE(dbcsr_data_obj), DIMENSION(:), POINTER :: buffers
  END TYPE dbcsr_block_buffer_type
  TYPE dbcsr_block_buffer_obj
     TYPE(dbcsr_block_buffer_type), POINTER :: b
  END TYPE dbcsr_block_buffer_obj
CONTAINS
  SUBROUTINE dbcsr_assert(right, error)
    LOGICAL, INTENT(IN)                      :: right
    TYPE(dbcsr_error_type), INTENT(inout)    :: error
  END SUBROUTINE 
  FUNCTION dbcsr_buffers_get_num (buffers) RESULT (nbuffers)
    TYPE(dbcsr_block_buffer_obj), INTENT(IN) :: buffers
    TYPE(dbcsr_error_type)                   :: error
    CALL dbcsr_assert (.TRUE., error)
    nbuffers = SIZE (buffers%b%buffers)
  END FUNCTION dbcsr_buffers_get_num
  SUBROUTINE dbcsr_buffers_flush (buffers)
    TYPE(dbcsr_block_buffer_obj), &
      INTENT(INOUT)                          :: buffers
       DO ibuff = 1, dbcsr_buffers_get_num(buffers)
       ENDDO
  END SUBROUTINE dbcsr_buffers_flush
END MODULE

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