------- Comment #7 from dominiq at lps dot ens dot fr  2010-02-26 19:27 -------
> Change attr.is_main_program to sym->ns->proc_name->attr.is_main_program

This change fixes most of the failures I have seen. Is 

  if (TREE_STATIC (decl) && !sym->attr.use_assoc
      && (sym->attr.save || sym->attr.is_main_program))

the only place where this change should be done?

The following test still fails:

implicit none

CALL data_init_scalar()

CONTAINS
  SUBROUTINE data_init_scalar()
    integer :: a
    data       a / 1 /

    IF (a /= 1) CALL abort()
  END SUBROUTINE

END

and some ICEs related to overlapping intializations (with DATA statements?) are
gone.

also the test in comment#2 of pr40440
(http://gcc.gnu.org/bugzilla/attachment.cgi?id=17996&action=view ) abort at run
time with

 Starting to load ifile
a.out(29469) malloc: *** error for object 0xffffff0000000000: pointer being
freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort

I am now starting a gfortran regtest.


-- 


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

Reply via email to