http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48369
Summary: [4.6 Regression] [C++0x] ICE in potential_constant_expression_1, at cp/semantics.c:7746 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: ja...@gcc.gnu.org extern "C" int isnan (double); void f(double d) { bool b = isnan(d); } $ ~/gcc/4.6/bin/g++ s.cc -std=gnu++0x s.cc: In function 'void f(double)': s.cc:5:21: sorry, unimplemented: unexpected ast of kind unordered_expr s.cc:5:21: internal compiler error: in potential_constant_expression_1, at cp/semantics.c:7746 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Only happens when the function is extern "C" but that obviously affects the whole of <math.h> No ICE for -std=c++98 / gnu++98 / c++0x, only gnu++0x I haven't tried it on trunk