Hi!

On various targets, %s in fprintf can't handle NULL arguments,
and even when edge->call_stmt is non-NULL, it still might have
UNKNOWN_LOCATION or BUILTINS_LOCATION, which have NULL filename.
In this particular case it is a fnsplit created call.

Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux,
ok for trunk?

2015-01-26  Jakub Jelinek  <ja...@redhat.com>

        PR ipa/64730
        * ipa-inline.c (inline_small_functions): Print "unknown" even
        if edge->call_stmt is non-NULL, but has builtins or unknown
        location.

--- gcc/ipa-inline.c.jj 2015-01-22 21:45:18.000000000 +0100
+++ gcc/ipa-inline.c    2015-01-26 15:41:57.193640527 +0100
@@ -1822,6 +1822,9 @@ inline_small_functions (void)
                   " Estimated badness is %f, frequency %.2f.\n",
                   edge->caller->name (), edge->caller->order,
                   edge->call_stmt
+                  && (LOCATION_LOCUS (gimple_location ((const_gimple)
+                                                       edge->call_stmt))
+                      > BUILTINS_LOCATION)
                   ? gimple_filename ((const_gimple) edge->call_stmt)
                   : "unknown",
                   edge->call_stmt

        Jakub

Reply via email to