[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

--- Comment #7 from Tobias Burnus burnus at gcc dot gnu.org 2012-01-25 
08:12:02 UTC ---
Author: burnus
Date: Wed Jan 25 08:11:56 2012
New Revision: 183511

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=183511
Log:
2012-01-25  Tobias Burnus  bur...@net-b.de

PR fortran/51966
* resolve.c (resolve_structure_cons): Only create an
array constructors for nonscalars.

2012-01-25  Tobias Burnus  bur...@net-b.de

PR fortran/51966
* gfortran.dg/derived_constructor_char_3.f90: New.


Added:
   
branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
Modified:
branches/gcc-4_6-branch/gcc/fortran/ChangeLog
branches/gcc-4_6-branch/gcc/fortran/resolve.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #8 from Tobias Burnus burnus at gcc dot gnu.org 2012-01-25 
08:26:16 UTC ---
FIXED on the trunk (for 4.7) and on the 4.6 branch.

Thanks for the report!

If the issue blocks you, you could consider downgrading to 4.5. Alternatively,
you could build GCC yourself or download a newer [than today] 4.6 or pre-4.7.0
build. (Cf. http://gcc.gnu.org/wiki/GFortranBinaries and
http://gcc.gnu.org/wiki/GFortranDistros )


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2012-01-24 
09:26:56 UTC ---
Reduced test case, which also illustrates another ICE:


module EcoSystem_ml
  implicit none

  type, public:: Deriv
character(len=10) :: name
  end type

  character(len=8), public, dimension(1), parameter :: 
   DEF_ECOSYSTEMS = (/ Grid /)

  type(Deriv), save :: DepEcoSystem != Deriv(DEF_ECOSYSTEMS(1))
!  ICE in gfc_conv_string_init
contains
  subroutine Init_EcoSystems()
DepEcoSystem = Deriv(DEF_ECOSYSTEMS(1))
 ! ^^^ ICE in gfc_conv_array_constructor_expr
  end subroutine Init_EcoSystems
end module EcoSystem_ml


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2012-01-24 
09:48:28 UTC ---
(In reply to comment #4)
   type(Deriv), save :: DepEcoSystem = Deriv(DEF_ECOSYSTEMS(1))

Here, the problem is that in
  #0  gfc_conv_string_init (length=0x2cf3b720, expr=0x16c1170)
expr-type == EXPR_ARRAY. Hence, the following fails:
  gcc_assert (expr-expr_type == EXPR_CONSTANT);

#1  in gfc_conv_initializer at fortran/trans-expr.c:4940
#2  in gfc_conv_structure   at fortran/trans-expr.c:5396
#3  in gfc_conv_initializer at fortran/trans-expr.c:4933
#4  in gfc_get_symbol_decl  at fortran/trans-decl.c:1476

Also that version works with GCC 4.5.


(In reply to comment #3)
 [2009-07-23] Revision 162456 is OK,
 [2010-09-29] revision 164728 gives the ICE.

Also 2010-08-28-r163612 fails.

I wonder whether the patch for PR 44857 (2010-08-04, Rev. 162863) is the
culprit:
http://gcc.gnu.org/ml/fortran/2010-08/msg00034.html


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2012-01-25 
06:59:25 UTC ---
Author: burnus
Date: Wed Jan 25 06:59:21 2012
New Revision: 183510

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=183510
Log:
2012-01-24  Tobias Burnus  bur...@net-b.de

PR fortran/51966
* resolve.c (resolve_structure_cons): Only create an
array constructors for nonscalars.

2012-01-24  Tobias Burnus  bur...@net-b.de

PR fortran/51966
* gfortran.dg/derived_constructor_char_3.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-23 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 CC||burnus at gcc dot gnu.org
  Known to work||4.1.2, 4.3.4, 4.4.0, 4.5.3
   Target Milestone|--- |4.6.3
Summary|internal compiler error |[4.6/4.7 Regression] ICE in
   ||gfc_conv_array_constructor_
   ||expr
  Known to fail||4.6.2, 4.7.0

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-01-23 
15:06:13 UTC ---
Fails at the assert of gfc_conv_array_constructor_expr at 
fortran/trans-expr.c:4753:
4753  gcc_assert (ss != NULL  ss != gfc_ss_terminator);

as ss == NULL.


Backtrace:
#1  gfc_conv_expr (se=0x7fffd260, expr=0x16bf0b0) at trans-expr.c:5421
#2  0x005d0dfe in gfc_trans_subcomponent_assign (expr=0x16bf0b0,
cm=0x16bf270, dest=0x2cf250a8)
at fortran/trans-expr.c:5179
#3  gfc_trans_structure_assign (dest=0x2ce26280, expr=Unhandled dwarf
expression opcode 0xfa
)
at fortran/trans-expr.c:5230
#4  0x005d1cb4 in gfc_conv_structure (se=0x7fffd740,
expr=0x16c0810, init=0)
at fortran/trans-expr.c:5257
#5  0x005d241c in gfc_trans_assignment_1 (expr1=0x16c0090,
expr2=0x16c0810, init_flag=false, dealloc=true)


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-23 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-01-23
 Ever Confirmed|0   |1

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-01-23 
15:13:18 UTC ---
Confirmed on trunk and 4.6.2. The failure is the same as in pr51864.

Revision 162456 is OK,
revision 164728 gives the ICE.


[Bug fortran/51966] [4.6/4.7 Regression] ICE in gfc_conv_array_constructor_expr

2012-01-23 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
 CC||jakub at gcc dot gnu.org