This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/58290] New: [4.9 Regression] error: virtual definition of statement not up-to-date
- From: "Joost.VandeVondele at mat dot ethz.ch" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 01 Sep 2013 08:07:08 +0000
- Subject: [Bug middle-end/58290] New: [4.9 Regression] error: virtual definition of statement not up-to-date
- Auto-submitted: auto-generated
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