Ken, the short answer is, the test program seems to be valid fortran; and both gfortran-mp-13 and gfortran-mp-14 have a bug. They can't handle the function "ToBase" as written.
I tested several convolutions: external rather than module function; subroutine instead of function; etc. The first thing that worked was to get rid of the function altogether, and inline the function code. Attached is the working version. Please try it. Also try gfortran in MacPorts gcc-devel (i.e. GCC version 15) on the original program. Also try other fortran compilers if you have anything else besides flang. This may or may not be a known gfortran bug. It would be worth checking GCC bug reports, or filing a new report. There is a second bug here: "Could not print backtrace: DW_FORM_line_strp out of range". This is a failure in the GCC backtrace code. This was disappointing because it concealed useful information that I expected from your second test. This is a known GCC bug, therefore not worth pursuing on this forum. Google search it if you care. I don't. Note that MacPorts gcc13, gcc14, and gcc-devel are all slightly out of date. Updating any of these may or may not fix either the fortran problem, or the backtrace problem. On Fri, Aug 1, 2025 at 7:58 PM Kenneth Wolcott <[email protected]> wrote: > Hi Dave; > > I have a new directory created by the debug commands, which I did not > notice when I replied earlier. I have tar'd it up and compressed it > and attached it. Hopefully it is useful. > > Thanks, > Ken > > On Fri, Aug 1, 2025 at 6:19 PM Kenneth Wolcott <[email protected]> > wrote: > > > > Hi Dave; > > > > Thanks for the debugging info hint... > > > > Here's my new ./test_it.bash file: > > > > cat -n ./test_it.bash > > 1 #!/bin/bash > > 2 > > 3 printf "\nUsing gfortran-mp-14 ...\n" > > 4 # gfortran-mp-14 -x none -o ./non_decimal_radices_convert > > ./non_decimal_radices_convert.f90 > > 5 stem="./non_decimal_radices_convert" > > 6 source="${stem}.f90" > > 7 gfortran-mp-14 -g -O0 -fbacktrace -fcheck=all -Wall -x none -o > > $stem $source > > 8 > > 9 if [ -f $stem ]; then > > 10 $stem > > 11 rm $stem > > 12 fi > > 13 > > 14 if [ -f ./conversion.mod ]; then > > 15 rm ./conversion.mod > > 16 fi > > 17 > > 18 printf "\nUsing flang-mp-20...\n" > > 19 /opt/local/bin/flang-mp-20 -o $stem $source > > 20 if [ -f $stem ]; then > > 21 $stem > > 22 rm $stem > > 23 fi > > 24 > > 25 if [ -f ./conversion.mod ]; then > > 26 rm ./conversion.mod > > 27 fi > > > > And here's the output: > > > > ./test_it.bash > > > > Using gfortran-mp-14 ... > > 26 > > > > Program received signal SIGBUS: Access to an undefined portion of a > > memory object. > > > > Backtrace for this error: > > #0 0x104446083 in ??? > > #1 0x104445357 in ??? > > #2 0x1850b56a3 in ??? > > > > Could not print backtrace: DW_FORM_line_strp out of range in .debug_line > at 38 > > #3 0x104310c67 in ??? > > #4 0x104310c67 in ??? > > #5 0x104310cc7 in ??? > > ./test_it.bash: line 12: 97090 Bus error: 10 $stem > > > > Using flang-mp-20... > > 26 > > 1a > > > > Thanks, > > Ken > > On Fri, Aug 1, 2025 at 2:31 PM Dave Allured - NOAA Affiliate > > <[email protected]> wrote: > > > > > > This feels like subscript out of bounds. Please add standard gfortran > debugging options before asking for deeper analysis. In particular, > `-fcheck=all` will check for most subscripts out of bounds, including > string indexing. It will then give intelligent legible diagnostics. > > > > > > `gfortran -g -O0 -fbacktrace -fcheck=all -Wall` > > > > > > > > > On Fri, Aug 1, 2025 at 2:59 PM Kenneth Wolcott < > [email protected]> wrote: > > >> > > >> Hi; > > >> > > >> Weird error from a very short bash script involving gfortran and flang > > >> compile/execution... > > >> > > >> I'm trying to compile and execute a Rosetta Code task written in > Fortran: > > >> > > >> https://rosettacode.org/wiki/Non-decimal_radices/Convert#Fortran > > >> > > >> ***************************** > > >> Here is my ./test_it.bash script: > > >> > > >> cat -n ./test_it.bash > > >> 1 #!/bin/bash > > >> 2 > > >> 3 printf "\nUsing gfortran-mp-14 ...\n" > > >> 4 gfortran-mp-14 -x none -o ./non_decimal_radices_convert > > >> ./non_decimal_radices_convert.f90 > > >> 5 if [ -f ./non_decimal_radices_convert ]; then > > >> 6 ./non_decimal_radices_convert > > >> 7 rm ./non_decimal_radices_convert > > >> 8 fi > > >> 9 > > >> 10 printf "\nUsing flang-mp-20...\n" > > >> 11 /opt/local/bin/flang-mp-20 -o ./non_decimal_radices_convert > > >> ./non_decimal_radices_convert.f90 > > >> 12 if [ -f ./non_decimal_radices_convert ]; then > > >> 13 ./non_decimal_radices_convert > > >> 14 rm ./non_decimal_radices_convert > > >> 15 fi > > >> > > >> ***************************** > > >> ***************************** > > >> Here are the results: > > >> > > >> ./test_it.bash > > >> > > >> Using gfortran-mp-14 ... > > >> 26 > > >> > > >> Program received signal SIGBUS: Access to an undefined portion of a > > >> memory object. > > >> > > >> Backtrace for this error: > > >> #0 0x102e520a7 > > >> #1 0x102e51357 > > >> #2 0x1850b56a3 > > >> #3 0x102c7c997 > > >> #4 0x102c7c997 > > >> #5 0x102c7c9ef > > >> ./test_it.bash: line 8: 93614 Bus error: 10 > > >> ./non_decimal_radices_convert > > >> > > >> Using flang-mp-20... > > >> 26 > > >> 1a > > >> ***************************** > > >> > > >> Was the executable generated by gfortran still executing when I > deleted it? > > >> > > >> Why is there a difference? > > >> > > >> Is there a bug here? > > >> > > >> Thanks, > > >> Ken Wolcott >
inline2.f90
Description: Binary data
