------- Comment #2 from fxcoudert at gcc dot gnu dot org  2006-07-26 19:52 
-------
gfortran 4.0 series is seriously broken and shouldn't be considered for
production use. Indeed, your testcase and variations work with the gfortran 4.2
branch, except for the following:

$ cat a.f90     
integer, dimension(3), parameter :: a=(/1,2,3/)
integer, dimension(3), parameter :: b=(/a(:)/)
end
$ gfortran a.f90
a.f90:0: internal compiler error: Segmentation fault

which is an ICE. Removing the "(:)" makes it work. The backtrace for the ICE
is:

Program received signal SIGSEGV, Segmentation fault.
0xb7ee5473 in __gmpz_set () from /usr/lib/libgmp.so.3
(gdb) where
#0  0xb7ee5473 in __gmpz_set () from /usr/lib/libgmp.so.3
#1  0x08061c04 in simplify_const_ref (p=0x8729548)
    at ../../../trunk/gcc/fortran/expr.c:1089
#2  0x0806260d in gfc_simplify_expr (p=0x8729548, type=1)
    at ../../../trunk/gcc/fortran/expr.c:1499
#3  0x08062bb4 in simplify_parameter_variable (p=0x8729420, type=1)
    at ../../../trunk/gcc/fortran/expr.c:1374
#4  0x080625ee in gfc_simplify_expr (p=0x8729420, type=1)
    at ../../../trunk/gcc/fortran/expr.c:1470
#5  0x0804f4da in expand_constructor (c=0x8728c68)
    at ../../../trunk/gcc/fortran/array.c:1375
#6  0x0804f66b in gfc_array_size (array=0x87293c8, result=0xbf919208)
    at ../../../trunk/gcc/fortran/array.c:1968
#7  0x0808d4ff in expression_rank (e=0x87293c8)
    at ../../../trunk/gcc/fortran/resolve.c:2798
#8  0x0808e7f8 in gfc_resolve_expr (e=0x87293c8)
    at ../../../trunk/gcc/fortran/resolve.c:3026
#9  0x08062e16 in gfc_match_init_expr (result=0xbf919444)
    at ../../../trunk/gcc/fortran/expr.c:1843
#10 0x0805b49a in variable_decl (elem=Variable "elem" is not available.
)
    at ../../../trunk/gcc/fortran/decl.c:1268
#11 0x0805ba4a in gfc_match_data_decl ()
    at ../../../trunk/gcc/fortran/decl.c:2316
#12 0x08084b0a in match_word (str=Variable "str" is not available.
) at ../../../trunk/gcc/fortran/parse.c:65
#13 0x080850ad in decode_statement () at ../../../trunk/gcc/fortran/parse.c:134
#14 0x08085a3e in next_statement () at ../../../trunk/gcc/fortran/parse.c:493
#15 0x080876ec in parse_spec (st=ST_DATA_DECL)
    at ../../../trunk/gcc/fortran/parse.c:1870
#16 0x08087c09 in parse_progunit (st=Variable "st" is not available.
)
    at ../../../trunk/gcc/fortran/parse.c:2870
#17 0x080880d1 in gfc_parse_file () at ../../../trunk/gcc/fortran/parse.c:3206
#18 0x080a91fd in gfc_be_parse_file (set_yydebug=0)
    at ../../../trunk/gcc/fortran/f95-lang.c:303
#19 0x0839d14a in toplev_main (argc=13, argv=0xbf919744)
    at ../../../trunk/gcc/toplev.c:999
#20 0x080dcd6f in main (argc=1, argv=0x1) at ../../../trunk/gcc/main.c:35


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org
           Severity|blocker                     |major
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
  GCC build triplet|x86_64-redhat-linux         |
   GCC host triplet|x86_64-redhat-linux         |
 GCC target triplet|x86_64-redhat-linux         |
   Last reconfirmed|0000-00-00 00:00:00         |2006-07-26 19:52:36
               date|                            |
            Summary|Error during array          |Error during array
                   |initialization with gfortran|initialization
            Version|4.0.2                       |4.2.0


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

Reply via email to