https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79440
Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-02-09 Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- Confirmed from 4.9.3 up to trunk (7.0). Compiling the test with 4.8.5 gives the error allocate( mygroup(1)%el(10), source=CBTHII( 12, 1, mymaterial, 1.5) ) 1 Error: Can't convert TYPE(cmaterial) to CLASS(cmaterial) at (1) The change occurred between revisions r201266 (2013-07-26, error) and r201631 (2013-08-09, ICE). Backtrace is frame #11: 0x0000000100700c38 f951`fold_convert_loc(loc=0, type=0x00000001445f13f0, arg=<unavailable>) + 1544 at fold-const.c:2361 frame #12: 0x000000010011a6fc f951`::gfc_trans_subcomponent_assign(dest=0x0000000144600a20, cm=0x000000014263be20, expr=0x0000000142650f90, sym=<unavailable>, init=<unavailable>) + 892 at trans-expr.c:7399 frame #13: 0x000000010011b506 f951`gfc_trans_structure_assign(dest=0x0000000144600990, expr=0x0000000142658890, init=false, coarray=false) + 262 at trans-expr.c:7578 frame #14: 0x000000010011ad5b f951`::gfc_trans_subcomponent_assign(dest=0x0000000144600990, cm=0x000000014264ee00, expr=0x0000000142658890, sym=0x000000014264ce60, init=<unavailable>) + 2523 at trans-expr.c:7416 frame #15: 0x000000010011b506 f951`gfc_trans_structure_assign(dest=0x00000001445f5ea0, expr=0x0000000142651110, init=true, coarray=false) + 262 at trans-expr.c:7578 frame #16: 0x000000010011c1cd f951`gfc_conv_structure(se=0x00007fff5fbfedc0, expr=0x0000000142651110, init=0) + 621 at trans-expr.c:7645 frame #17: 0x000000010011c78b f951`gfc_conv_expr_reference(se=0x00007fff5fbfedc0, expr=0x0000000142651110) + 107 at trans-expr.c:7928 frame #18: 0x0000000100156475 f951`gfc_trans_allocate(code=0x00000001426511d0) + 7173 at trans-stmt.c:5642 frame #19: 0x00000001000e09f8 f951`::trans_code(code=0x00000001426511d0, cond=0x0000000000000000) + 1496 at trans.c:1965 frame #20: 0x00000001001098c5 f951`gfc_generate_function_code(ns=<unavailable>) + 949 at trans-decl.c:6296 frame #21: 0x0000000100094eac f951`gfc_parse_file() + 1788 at parse.c:6051 frame #22: 0x00000001000dcdf7 f951`::gfc_be_parse_file() + 71 at f95-lang.c:204 frame #23: 0x0000000100a3214a f951`::compile_file() + 58 at toplev.c:463 frame #24: 0x0000000100e5f1e3 f951`toplev::main(this=0x00007fff5fbff290, argc=<unavailable>, argv=<unavailable>) + 3763 at toplev.c:1983 frame #25: 0x0000000100e60709 f951`main(argc=2, argv=0x00007fff5fbff2d8) + 41 at main.c:39 The ICE occurs at default: if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (orig)) return fold_build1_loc (loc, NOP_EXPR, type, arg); gcc_unreachable ();