Hi Andreas,
/usr/local/gcc/gcc-20110728/Build/ia64-suse-linux/libstdc++-v3/include/cmath:
In function 'constexpr float std::fma(float, float, float)':
/usr/local/gcc/gcc-20110728/Build/ia64-suse-linux/libstdc++-v3/include/cmath:1288:43:
sorry, unimplemented: unexpected ast of kind fma_expr
/usr/local/gcc/gcc-20110728/Build/ia64-suse-linux/libstdc++-v3/include/cmath:1288:43:
internal compiler error: in potential_constant_expression_1, at
cp/semantics.c:8094
in the past we encountered already a few small problems of this kind,
with cases missing from the potential_constant_expression_1 switch. I
believe something quite close to what I'm attaching below should be
enough, can you give it a try?
In any case, we definitely want Jason to have a look as soon as
possible. If you want to restore the ia64 bootstrap in the meanwhile,
feel free to comment out any troublesome constexpr specifier in that
file (or replacing it with inline).
Thanks!
Paolo.
//////////////////////
Index: semantics.c
===================================================================
--- semantics.c (revision 176846)
+++ semantics.c (working copy)
@@ -8057,6 +8057,13 @@ potential_constant_expression_1 (tree t, bool want
return false;
return true;
+ case FMA_EXPR:
+ for (i = 0; i < 3; ++i)
+ if (!potential_constant_expression_1 (TREE_OPERAND (t, i),
+ true, flags))
+ return false;
+ return true;
+
case COND_EXPR:
case VEC_COND_EXPR:
/* If the condition is a known constant, we know which of the legs we