[Bug tree-optimization/55761] process_assignment assumes -1 can be created
paulo@matos-sorge.com
gcc-bugzilla@gcc.gnu.org
Thu Dec 20 17:06:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55761
--- Comment #5 from Paulo J. Matos <paulo@matos-sorge.com> 2012-12-20 17:06:04 UTC ---
As per previous comments, I looks at build_one_cst and implemented
build_minus_one_cst:
tree
build_minus_one_cst (tree type)
{
switch (TREE_CODE (type))
{
case INTEGER_TYPE: case ENUMERAL_TYPE: case BOOLEAN_TYPE:
case POINTER_TYPE: case REFERENCE_TYPE:
case OFFSET_TYPE:
return build_int_cst (type, -1);
case REAL_TYPE:
return build_real (type, dconstm1);
case VECTOR_TYPE:
{
tree scalar = build_minus_one_cst (TREE_TYPE (type));
return build_vector_from_val (type, scalar);
}
case COMPLEX_TYPE:
return build_complex (type,
build_minus_one_cst (TREE_TYPE (type)),
build_zero_cst (TREE_TYPE (type)));
case FIXED_POINT_TYPE:
default:
gcc_unreachable ();
}
}
However, I am unsure on how to best model the FIXED_POINT_TYPE case, if at all
possible.
More information about the Gcc-bugs
mailing list