http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58555

            Bug ID: 58555
           Summary: Floating point exception in
                    want_inline_self_recursive_call_p
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com

Created attachment 30919
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30919&action=edit
gzipped C++ source code

I just tried to compile package flamerobin-0.9.3-4.20130401snap with
gcc 4.9 trunk dated 20130925. It said

./src/metadata/root.cpp:375:1: internal compiler error: Floating point
exception
 }
 ^
0xafbfff crash_signal
    ../../src/trunk/gcc/toplev.c:335
0x50ed95 want_inline_self_recursive_call_p
    ../../src/trunk/gcc/ipa-inline.c:699
0xf72320 inline_small_functions
    ../../src/trunk/gcc/ipa-inline.c:1756
0xf72320 ipa_inline
    ../../src/trunk/gcc/ipa-inline.c:2009
0xf72320 execute
    ../../src/trunk/gcc/ipa-inline.c:2379
Please submit a full bug report,
with preprocessed source if appropriate.

Preprocessed source code attached. Flag -O3 required.

Checking the compiler source code, the offending line is

      if (!max_count
      && (edge->frequency * CGRAPH_FREQ_BASE / caller_freq
          >= max_prob))

I speculate that caller_freq == 0 and someone has missed out
a belt'n'braces check for zero before making the division.

Reply via email to