[Bug fortran/71067] [4.9/5/6/7 Regression] ICE on data initialization with insufficient value

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Wed Jun 29 12:43:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71067

--- Comment #6 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> Thus I would consider the PR as 4.8/4.9/5/6/7 regression, do you agree?

Yes, the change occurred between revisions r190641 (2012-08-24, error) and
r190786 (2012-08-29, ICE). The backtrace is

* thread #1: tid = 0x8d8367, 0x00007fff811f2f06
libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread',
stop reason = signal SIGABRT
  * frame #0: 0x00007fff811f2f06 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff8cfc74ec libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x00007fff8a5106e7 libsystem_c.dylib`abort + 129
    frame #3: 0x00000001010497b1 f951`uw_init_context_1(context=<unavailable>,
outer_cfa=<unavailable>, outer_ra=<unavailable>) + 353 at unwind-dw2.c:1563
    frame #4: 0x000000010104a098 f951`_Unwind_Backtrace(trace=(f951`unwind at
backtrace.c:68), trace_argument=0x00007fff5fbfeb40) + 56 at unwind.inc:283
    frame #5: 0x0000000100fa4589 f951`backtrace_full(state=0x00000001426ff000,
skip=<unavailable>, callback=<unavailable>, error_callback=<unavailable>,
data=<unavailable>) + 105 at backtrace.c:127
    frame #6: 0x0000000100f66213
f951`diagnostic_action_after_output(context=0x0000000141979dc0,
diag_kind=<unavailable>) + 435 at diagnostic.c:481
    frame #7: 0x0000000100f66828
f951`diagnostic_report_diagnostic(context=0x0000000141979dc0,
diagnostic=0x00007fff5fbfec10) + 680 at diagnostic.c:943
    frame #8: 0x0000000100033fbd f951`gfc_internal_error(gmsgid="free_expr0():
Bad expr type") + 237 at error.c:1312
    frame #9: 0x0000000100034d5e f951`::free_expr0(e=0x0000000144307ac0) + 286
at expr.c:494
    frame #10: 0x0000000100034db9 f951`gfc_free_expr(e=0x0000000144307ac0) + 9
at expr.c:513
    frame #11: 0x000000010001f625 f951`gfc_free_data(gfc_data*) + 34 at
decl.c:143
    frame #12: 0x000000010001f603 f951`gfc_free_data(p=0x0000000144307330) + 51
    frame #13: 0x0000000100020747 f951`gfc_match_data() + 471 at decl.c:626
    frame #14: 0x000000010008286a
f951`::match_word_omp_simd(subr=<unavailable>, old_locus=0x00007fff5fbfee70,
simd_matched=<unavailable>, str=<unavailable>)(), locus *, bool *, const char
*) + 10 at parse.c:93
    frame #15: 0x0000000100086ffa f951`::decode_statement() + 5322 at
parse.c:457
    frame #16: 0x0000000100087d24 f951`::next_statement() + 276 at parse.c:1080
    frame #17: 0x000000010008991d f951`::parse_spec(st=ST_DATA_DECL) + 3325 at
parse.c:3637
    frame #18: 0x000000010008cbf7 f951`::parse_progunit(st=<unavailable>) + 39
at parse.c:5420
    frame #19: 0x000000010008e56a f951`gfc_parse_file() + 1146 at parse.c:5928
    frame #20: 0x00000001000d563b f951`::gfc_be_parse_file() + 59 at
f95-lang.c:198
    frame #21: 0x0000000100b663ca f951`::compile_file() + 58 at toplev.c:465
    frame #22: 0x000000010104e5d6 f951`toplev::main(int, char**) + 1561 at
toplev.c:1998
    frame #23: 0x000000010104dfbd f951`toplev::main(this=0x00007fff5fbff340,
argc=<unavailable>, argv=<unavailable>) + 733
    frame #24: 0x000000010104fe29 f951`main(argc=2, argv=0x00007fff5fbff380) +
41 at main.c:39
    frame #25: 0x00007fff810c35ad libdyld.dylib`start + 1

Tobias Burnus has committed several changes around "free" in this range.


More information about the Gcc-bugs mailing list