http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55761



--- Comment #5 from Paulo J. Matos <pa...@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.

Reply via email to