The following invalid testcase triggers a broken diagnostic since at least GCC 2.95.3:
=================================== int foo(int); void bar(double d) { foo(d)(); } =================================== bug.cc: In function 'void bar(double)': bug.cc:5: error: 'foo(#'fix_trunc_expr' not supported by dump_expr#<expression error>)' cannot be used as a function The other conversion is broken, too: =================================== int foo(double); void bar(int i) { foo(i)(); } =================================== bug.cc: In function 'void bar(int)': bug.cc:5: error: 'foo(#'float_expr' not supported by dump_expr#<expression error>)' cannot be used as a function -- Summary: Broken diagnostic: 'fix_trunc_expr' and 'float_expr' not supported by dump_expr Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: diagnostic, monitored Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33465