On Thu, Feb 21, 2013 at 7:16 PM, Bin.Cheng <[email protected]> wrote:
> Hi,
> GCCINT says that nop_expr is used to represent conversions that do not
> require any code generation, while function tree_strip_nop_conversions
> calls tree_nop_conversion, which returns false even for NOP_EXPR node
> like "(unsigned int)a", where a has type int.
Are you sure a has the type of int?
The code does:
if ((INTEGRAL_TYPE_P (outer_type)
|| POINTER_TYPE_P (outer_type)
|| TREE_CODE (outer_type) == OFFSET_TYPE)
&& (INTEGRAL_TYPE_P (inner_type)
|| POINTER_TYPE_P (inner_type)
|| TREE_CODE (inner_type) == OFFSET_TYPE))
return TYPE_PRECISION (outer_type) == TYPE_PRECISION (inner_type);
Which will return true for the case you mentioned. Also NOP_EXPR and
CONVERT_EXPR are handled almost the same through out the whole
compiler.
Thanks,
Andrew pinski
>
> Did I miss something? Thanks
>
> --
> Best Regards.