http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57391
Bug ID: 57391 Summary: [4.9 Regression] ICE compiling AIX math.h caused by PR c++/56930 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dje at gcc dot gnu.org The patch for PR c++/56930 breaks bootstrap on AIX when building libstdc++. I now receive the following error message: /tmp/20130524/gcc/include-fixed/math.h: In function 'long double fmal(long double, long double, long double)': /tmp/20130524/gcc/include-fixed/math.h:879:135: internal compiler error: unexpected expression '#'fma_expr' not supported by dump_expr#<expression error>' of kind fma_expr inline long double fmal(long double __x, long double __y, long double __z) { return fma((double) (__x), (double) (__y), (double) (__z)); } When not using long double 128, AIX math.h provides a number of definitions, including inline long double fmal(long double __x, long double __y, long double __z) { return fma((double) (__x), (double) (__y), (double) (__z)); } Reverting --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -6199,10 +6199,10 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum, if (convs->check_narrowing) check_narrowing (totype, expr); - if (issue_conversion_warnings && (complain & tf_warning)) - expr = convert_and_check (totype, expr); + if (issue_conversion_warnings) + expr = cp_convert_and_check (totype, expr, complain); else - expr = convert (totype, expr); + expr = cp_convert (totype, expr, complain); return expr; } removes the ICE.