------- Comment #17 from mmitchel at gcc dot gnu dot org  2008-02-05 05:22 
-------
I would suggest inserting the conversion right before the call to
build_target_expr_with_type in convert_like_real:

            if ((lvalue & clk_packed)
                && CLASS_TYPE_P (type)
                && !TYPE_HAS_TRIVIAL_INIT_REF (type))
              {
                error ("cannot bind packed field %qE to %qT",
                       expr, ref_type);
                return error_mark_node;
              }
            expr = build_target_expr_with_type (expr, type);

In particular, call:

  /* If EXPR is a bitfield, convert it to its declared type before
     building a TARGET_EXPR.  */
  expr = convert_bitfield_to_declared_type (expr);

You could do this somewhere in build_target_expr, but I think it's better to
leave those routines as low-level details.


-- 


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

Reply via email to