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

--- Comment #19 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
On Fri, Mar 08, 2024 at 05:42:05PM +0000, kyle.shores44 at gmail dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110644
> 
> --- Comment #17 from Kyle Shores <kyle.shores44 at gmail dot com> ---
> I was able to get tuv-x to compile by putting use statements in problematic
> files at the top of the module. In one case, I had to match the use ordering 
> to
> the order that the objects were used in the module (unsure if that mattered),
> and I also removed an object in a use only statement that wasn't used in that
> same file and then it compiled (these last two issues were for the same file
> test/unit/radiator/from_host.F90)
> 
> 

It seems your code is hitting a NULL pointer dereference when
generating a warning.  In resolve.cc(resolve_procedure_expression),
one finds

  /* A non-RECURSIVE procedure that is used as procedure expression within its
     own body is in danger of being called recursively.  */
  if (is_illegal_recursion (sym, gfc_current_ns))
    gfc_warning (0, "Non-RECURSIVE procedure %qs at %L is possibly calling"
                 " itself recursively.  Declare it RECURSIVE or use"
                 " %<-frecursive%>", sym->name, &expr->where);

for whatever reason &expr->where is a NULL pointer.  If I change
the above to remove &expr->where, then your code compiles with 
a bunch of warningsi, e.g.,

[ 95%] Building Fortran object
test/oldtuv/CMakeFiles/oldphotolib.dir/util/la_srb.type.F90.o
/usr/home/sgk/tmp/tuv-x/test/oldtuv/util/la_srb.type.F90:873:28:

  873 |       end module la_srb_type
      |                            1
Warning: Non-RECURSIVE procedure 'get_config_array' at (1) is possibly calling
itself recursively.  Declare it RECURSIVE or use '-frecursive'

Unfortunately, without a much smaller example code, I cannot go
any further in debugging your problem.

Reply via email to