Work around bootstrap failure in Fortran front end.
authorSandra Loosemore <sandra@codesourcery.com>
Sat, 19 Sep 2020 14:32:35 +0000 (07:32 -0700)
committerSandra Loosemore <sandra@codesourcery.com>
Sat, 19 Sep 2020 20:54:16 +0000 (13:54 -0700)
Switching the C++ front end to lower loops the same was as the C front
end triggered this error when bootstrapping the Fortran front end:

/path/to/gcc/fortran/interface.c:3546:12: error: '*new_arg' may be used uninitialized [-Werror=maybe-uninitialized]
 3546 |   new_arg[i]->next = NULL;
      |   ~~~~~~~~~^

Work around this by adding an assertion, which seems appropriate for
documentation and good coding practices anyway.

2020-08-12  Sandra Loosemore  <sandra@codesourcery.com>

gcc/fortran/
* interface.c (gfc_compare_actual_formal): Add assertion after
main processing loop to silence maybe-uninitialized error.

gcc/fortran/interface.c

index 020cdd73df821483e2289381c83a27049403e648..e2cc76f0024f18c4211071b0d33fdd1ad3787cf7 100644 (file)
@@ -3530,6 +3530,10 @@ gfc_compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal,
        }
     }
 
+  /* We should have handled the cases where the formal arglist is null
+     already.  */
+  gcc_assert (n > 0);
+
   /* The argument lists are compatible.  We now relink a new actual
      argument list with null arguments in the right places.  The head
      of the list remains the head.  */