This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Aliasing violation generated by fold_builtin_memcmp?


On Fri, Sep 30, 2005 at 01:49:59PM -0400, Andrew Pinski wrote:
> Something like this will fix the issue with TYPE_REF_CAN_ALIAS_ALL
> by removing the use.  Maybe we could move may_alias to a bit in the
> types and move TYPE_REF_CAN_ALIAS_ALL from the pointer type to the
> type which is being accessed instead of this mess.

Close.  

> +	build_type_attribute_variant (ttype,
> +				      merge_attributes
> +				        (TYPE_ATTRIBUTES (to_type), 
> +					 tree_cons (get_identifier ("may_alias"),
> +						    NULL_TREE, NULL_TREE)));

If ALIAS_SET had been computed on ttype, this will leave it set.
You'd need to force set it to zero here.  You can also avoid 
creating a new type for C for the case in question by checking 
that the original type has alias set zero.

>        return build_pointer_type_for_mode (build_type_no_quals (TREE_TYPE (t)),
>  					  TYPE_MODE (t),
> -					  TYPE_REF_CAN_ALIAS_ALL (t));
> +					  false);

You'd also want to delete all traces of TYPE_REF_CAN_ALIAS_ALL.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]