[Bug fortran/82055] segfault compiling F2003 functionality: 4.9.3, 5.3.0 and 6.3.0
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Wed Sep 20 08:46:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82055
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
--- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Confirmed also on trunk (8.0).
With the following change
--- mo_gas_optics_specification.orig.F90 2017-08-31 16:51:24.000000000
+0200
+++ mo_gas_optics_specification.F90 2017-08-31 18:56:56.000000000 +0200
@@ -408,7 +408,7 @@ contains
! Number of molecules per cm^2
real(wp), dimension(size(play,dim=1), size(play,dim=2)), target ::
col_dry_arr
- real(wp), dimension(:,:), pointer ::
col_dry_wk => NULL()
+ real(wp), dimension(:,:), pointer ::
col_dry_wk !=> NULL()
! ----------------------------------------------------------
! Code starts
!
@@ -525,13 +525,11 @@ contains
!
! Compute column amounts (number of molecule per cm^2) if user hasn't
provided them
- if (present(col_dry)) then
- col_dry_wk => col_dry
- else
+ if (.not.present(col_dry)) then
idx_h2o = string_loc_in_array('h2o', terse_gas_names)
col_dry_arr = get_col_dry(vmr(:,:,idx_h2o), plev, tlay) ! column dry
amounts computation
- col_dry_wk => col_dry_arr
end if
+ col_dry_wk => col_dry_arr
! Make list of minor gases that are defined in specification and have
available concentrations
! Includes key species that are also considered minor at some g-points
the ICE is
mo_gas_optics_specification.F90:532:0:
col_dry_wk => col_dry_arr
internal compiler error: Segmentation fault: 11
I have tried to reduce the code, but it is pretty touchy.
My instrumented compiler gives
../../work/gcc/tree.h:3211:28: runtime error: member access within null pointer
of type 'tree_node *[2]'
ASAN:DEADLYSIGNAL
=================================================================
==3334==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc
0x000102a5e033 bp 0x7fff5fbfc190 sp 0x7fff5fbfc140 T0)
==3334==The signal is caused by a READ memory access.
==3334==Hint: address points to the zero page.
#0 0x102a5e032 in size_binop_loc(unsigned int, tree_code, tree_node*,
tree_node*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x102a5e032)
#1 0x102872296 in get_inner_reference(tree_node*, long long*, long long*,
tree_node**, machine_mode*, int*, int*, int*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x102872296)
#2 0x102a66495 in fold_unary_loc(unsigned int, tree_code, tree_node*,
tree_node*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x102a66495)
#3 0x102a6c03f in fold_build1_loc(unsigned int, tree_code, tree_node*,
tree_node*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x102a6c03f)
#4 0x102a6d813 in fold_convert_loc(unsigned int, tree_node*, tree_node*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x102a6d813)
#5 0x100586c86 in gfc_trans_string_copy(stmtblock_t*, tree_node*,
tree_node*, int, tree_node*, tree_node*, int)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100586c86)
#6 0x10058836f in gfc_trans_scalar_assign(gfc_se*, gfc_se*, gfc_typespec,
bool, bool, bool)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10058836f)
#7 0x100611dfd in gfc_trans_assignment_1(gfc_expr*, gfc_expr*, bool, bool,
bool, bool)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100611dfd)
#8 0x1006125bb in gfc_trans_assignment(gfc_expr*, gfc_expr*, bool, bool,
bool, bool)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1006125bb)
#9 0x1006127e2 in gfc_trans_assign(gfc_code*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1006127e2)
#10 0x10041c403 in trans_code(gfc_code*, tree_node*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10041c403)
#11 0x10041d8e2 in gfc_trans_code(gfc_code*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10041d8e2)
#12 0x100550a0a in gfc_generate_function_code(gfc_namespace*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100550a0a)
#13 0x100429dca in gfc_generate_module_code(gfc_namespace*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x100429dca)
#14 0x10027ff87 in translate_all_program_units(gfc_namespace*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10027ff87)
#15 0x10029aca0 in gfc_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10029aca0)
#16 0x1003f14f2 in gfc_be_parse_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1003f14f2)
#17 0x1045a4bac in compile_file()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1045a4bac)
#18 0x1045ad7fe in do_compile()
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1045ad7fe)
#19 0x10651f30d in toplev::main(int, char**)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x10651f30d)
#20 0x1065249ce in main
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x1065249ce)
#21 0x7fffbcb65234 in start (/usr/lib/system/libdyld.dylib+0x5234)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.7.0/8.0.0/f951+0x102a5e032)
in size_binop_loc(unsigned int, tree_code, tree_node*, tree_node*)
==3334==ABORTING
==3334==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top:
0x7fff5fc00000; bottom 0x000154fd4000; size: 0x7ffe0ac2c000 (140729078956032)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
mo_gas_optics_specification.F90:532:0:
col_dry_wk => col_dry_arr
internal compiler error: Abort trap: 6
More information about the Gcc-bugs
mailing list