[Bug fortran/56575] [4.6/4.7/4.8 Regression] An invalid OO code causes ICE

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Sat Mar 9 11:49:00 GMT 2013


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-03-09
                 CC|                            |janus at gcc dot gnu.org
            Summary|An invalid OO code causes   |[4.6/4.7/4.8 Regression] An
                   |ICE                         |invalid OO code causes ICE
     Ever Confirmed|0                           |1

--- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-03-09 11:48:56 UTC ---
Revision 170214 (2011-02-16) gives the errors and revision 170230 (2011-02-16) 
gives the segmentation fault. The only change in this range is revision 170223

Author: janus
Date: Wed Feb 16 20:51:56 2011
New Revision: 170223

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170223
Log:
2011-02-16  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/47745
    * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
    * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
    'gfc_build_class_symbol'.
    (gfc_match_decl_type_spec): Reject unlimited polymorphism.
    * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
    * match.c (select_type_set_tmp): Move setting of 'class_ok' into
    'gfc_build_class_symbol'.
    * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.

2011-02-16  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/47745
    * gfortran.dg/class_39.f03: New.

Added:
    trunk/gcc/testsuite/gfortran.dg/class_39.f03
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/class.c
    trunk/gcc/fortran/decl.c
    trunk/gcc/fortran/interface.c
    trunk/gcc/fortran/match.c
    trunk/gcc/fortran/primary.c
    trunk/gcc/testsuite/ChangeLog

Backtrace:

(gdb) run pr56575.f90
Starting program:
/opt/gcc/gcc4.8w/libexec/gcc/x86_64-apple-darwin10.8.0/4.8.0/f951 pr56575.f90

Program received signal SIGSEGV, Segmentation fault.
0x0000000100037bee in gfc_default_initializer (ts=0x141a152f0) at
../../work/gcc/fortran/expr.c:3894
3894        || (comp->ts.type == BT_CLASS && CLASS_DATA
(comp)->attr.allocatable))
(gdb) bt
#0  0x0000000100037bee in gfc_default_initializer (ts=0x141a152f0) at
../../work/gcc/fortran/expr.c:3894
#1  0x000000010001c543 in gfc_find_derived_vtab (derived=0x141a14350) at
../../work/gcc/fortran/class.c:2303
#2  0x000000010001cb03 in gfc_build_class_symbol (ts=0x141a147c0,
attr=0x141a147e8, as=0x141a14838, delayed_vtab=<value optimized out>)
    at ../../work/gcc/fortran/class.c:648
#3  0x0000000100022c5c in build_sym (name=<value optimized out>, cl=<value
optimized out>, cl_deferred=<value optimized out>, 
    as=<value optimized out>, var_locus=<value optimized out>) at
../../work/gcc/fortran/decl.c:1197
#4  0x0000000100028c49 in gfc_match_data_decl () at
../../work/gcc/fortran/decl.c:1988
#5  0x000000010007a5da in match_word (subr=<value optimized out>,
old_locus=0x7fff5fbfd300, str=<value optimized out>)
    at ../../work/gcc/fortran/parse.c:65
#6  0x000000010007af77 in decode_statement () at
../../work/gcc/fortran/parse.c:330
#7  0x000000010007c70a in next_statement () at
../../work/gcc/fortran/parse.c:777
#8  0x000000010007e675 in parse_spec (st=ST_NONE) at
../../work/gcc/fortran/parse.c:2590
#9  0x0000000100080549 in parse_progunit (st=<value optimized out>) at
../../work/gcc/fortran/parse.c:4118
#10 0x0000000100080921 in parse_contained (module=1) at
../../work/gcc/fortran/parse.c:4057
#11 0x0000000100081e5a in gfc_parse_file () at
../../work/gcc/fortran/parse.c:4316
#12 0x00000001000c1d96 in gfc_be_parse_file () at
../../work/gcc/fortran/f95-lang.c:189
#13 0x000000010076dc84 in compile_file () at ../../work/gcc/toplev.c:543
#14 0x000000010076fda9 in toplev_main (argc=2, argv=0x7fff5fbfd7c8) at
../../work/gcc/toplev.c:1876
#15 0x000000010000a644 in start (pc=<value optimized out>, bases=0x0) at
../../../work/libgcc/config/unwind-dw2-fde-darwin.c:272



More information about the Gcc-bugs mailing list