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