https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82721
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
Status|UNCONFIRMED |NEW
Known to work| |6.4.0
Keywords| |error-recovery,
| |ice-on-invalid-code
Last reconfirmed| |2017-10-25
Ever confirmed|0 |1
Summary|Error message with |[7/8 Regression] Error
|corrupted text, sometimes |message with corrupted
|ICE |text, sometimes ICE
Known to fail| |7.2.0, 8.0
--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Confirmed for 7.2.0 and trunk. I get an ICE if the compiler is configured with
--enable-checking=yes
character(len(c)) :: b
1
Error: Symbol 'b' at (1) already has basic type of REAL
f951: internal compiler error: Illegal instruction: 4
and
character(len(c)) :: b
1
Error: Symbol 'b' at (1) already has basic type of REAL
(null):0: confused by earlier errors, bailing out
if the compiler is configured with --enable-checking=release.
The change occurred between revisions r243430 (2016-12-08, OK) and r243621
(2016-12-13, bailing out).
My instrumented compiler reports
==79420==ERROR: AddressSanitizer: heap-use-after-free on address 0x604000001138
at pc 0x00010040f256 bp 0x7fff5fbfe7b0 sp 0x7fff5fbfe7a8
READ of size 8 at 0x604000001138 thread T0
#0 0x10040f255 in check_host_association(gfc_expr*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10040f255)
#1 0x10040a172 in gfc_resolve_expr(gfc_expr*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10040a172)
#2 0x100424de3 in resolve_index_expr(gfc_expr*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100424de3)
#3 0x10042b316 in resolve_charlen(gfc_charlen*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10042b316)
#4 0x1004611dd in resolve_types(gfc_namespace*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1004611dd)
#5 0x1003e7626 in gfc_resolve(gfc_namespace*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1003e7626)
#6 0x100342827 in resolve_all_program_units(gfc_namespace*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100342827)
#7 0x100363ced in gfc_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100363ced)
#8 0x100547a22 in gfc_be_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100547a22)
#9 0x105b4df34 in compile_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x105b4df34)
#10 0x105b5a2c7 in do_compile()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x105b5a2c7)
#11 0x1082c47cb in toplev::main(int, char**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1082c47cb)
#12 0x1082ccd02 in main
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1082ccd02)
#13 0x7fffbcb65234 in start (/usr/lib/system/libdyld.dylib+0x5234)
0x604000001138 is located 40 bytes inside of 48-byte region
[0x604000001110,0x604000001140)
freed by thread T0 here:
#0 0x15a658160 in wrap_free.part.0
(/opt/gcc/gcc8w/lib/libasan.4.dylib+0x67160)
#1 0x1004eb9ef in gfc_delete_symtree(gfc_symtree**, char const*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1004eb9ef)
#2 0x100507dc2 in gfc_restore_last_undo_checkpoint()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100507dc2)
#3 0x100508042 in gfc_undo_symbols()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100508042)
#4 0x100342d3e in reject_statement()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100342d3e)
#5 0x100342eae in match_word(char const*, match (*)(), locus*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100342eae)
#6 0x100350df7 in decode_statement()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100350df7)
#7 0x100353557 in next_free()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100353557)
#8 0x100353fe6 in next_statement()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100353fe6)
#9 0x10035a7d7 in parse_spec(gfc_statement)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10035a7d7)
#10 0x1003618e6 in parse_progunit(gfc_statement)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1003618e6)
#11 0x100363caf in gfc_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100363caf)
#12 0x100547a22 in gfc_be_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100547a22)
#13 0x105b4df34 in compile_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x105b4df34)
#14 0x105b5a2c7 in do_compile()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x105b5a2c7)
#15 0x1082c47cb in toplev::main(int, char**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1082c47cb)
#16 0x1082ccd02 in main
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1082ccd02)
#17 0x7fffbcb65234 in start (/usr/lib/system/libdyld.dylib+0x5234)
previously allocated by thread T0 here:
#0 0x15a6577ac in wrap_calloc (/opt/gcc/gcc8w/lib/libasan.4.dylib+0x667ac)
#1 0x1081075c5 in xcalloc
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1081075c5)
#2 0x1004eb65d in gfc_new_symtree(gfc_symtree**, char const*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1004eb65d)
#3 0x1004ef980 in gfc_get_sym_tree(char const*, gfc_namespace*,
gfc_symtree**, bool)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1004ef980)
#4 0x1004fc93e in gfc_get_ha_sym_tree(char const*, gfc_symtree**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1004fc93e)
#5 0x10038ad3d in gfc_match_rvalue(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10038ad3d)
#6 0x100250d0b in match_primary(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100250d0b)
#7 0x100250fa0 in match_level_1(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100250fa0)
#8 0x100251315 in match_mult_operand(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100251315)
#9 0x100251b35 in match_add_operand(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100251b35)
#10 0x100252552 in match_level_2(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100252552)
#11 0x100252a79 in match_level_3(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100252a79)
#12 0x100252f00 in match_level_4(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100252f00)
#13 0x100253d52 in match_and_operand(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100253d52)
#14 0x100254026 in match_or_operand(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100254026)
#15 0x100254499 in match_equiv_operand(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100254499)
#16 0x100254916 in match_level_5(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100254916)
#17 0x100250828 in gfc_match_expr(gfc_expr**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100250828)
#18 0x10009efca in char_len_param_value(gfc_expr**, bool*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10009efca)
#19 0x1000b2813 in gfc_match_char_spec(gfc_typespec*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1000b2813)
#20 0x1000cf7a1 in gfc_match_decl_type_spec(gfc_typespec*, int)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1000cf7a1)
#21 0x1000e1351 in gfc_match_data_decl()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1000e1351)
#22 0x100342e2c in match_word(char const*, match (*)(), locus*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100342e2c)
#23 0x100350df7 in decode_statement()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100350df7)
#24 0x100353557 in next_free()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100353557)
#25 0x100353fe6 in next_statement()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100353fe6)
#26 0x10035a7d7 in parse_spec(gfc_statement)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10035a7d7)
#27 0x1003618e6 in parse_progunit(gfc_statement)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1003618e6)
#28 0x100363caf in gfc_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100363caf)
#29 0x100547a22 in gfc_be_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100547a22)
SUMMARY: AddressSanitizer: heap-use-after-free
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10040f255)
in check_host_association(gfc_expr*)
Shadow bytes around the buggy address:
0x1c08000001d0: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
0x1c08000001e0: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
0x1c08000001f0: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
0x1c0800000200: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
0x1c0800000210: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
=>0x1c0800000220: fa fa fd fd fd fd fd[fd]fa fa 00 00 00 00 00 fa
0x1c0800000230: fa fa fd fd fd fd fd fd fa fa 00 00 00 00 00 00
0x1c0800000240: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
0x1c0800000250: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
0x1c0800000260: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fa
0x1c0800000270: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==79420==ABORTING
f951: internal compiler error: Abort trap: 6