This is the mail archive of the gcc-patches@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: [PATCH] Make alias_sets_conflict_p less conservative


On Wed, 5 Mar 2008, Richard Kenner wrote:

> > So I'm still inclined to go with my patch with adding a big'n'fat
> > comment.
> 
> I think your patch is wrong: it says that two alias set don't conflict
> when, in fact, they do.
> 
> Bugs caused by this are notoriously hard to find because they come and go
> so I'd be very much against introducing this into GCC even if the only
> bug is a latent one.

Meh.  It is not going to work out to make char not alias set zero.
Look:

alias_set_type
c_common_get_alias_set (tree t)
{
...
  /* The C standard guarantees that any object may be accessed via an
     lvalue that has character type.  */
  if (t == char_type_node
      || t == signed_char_type_node
      || t == unsigned_char_type_node)
    return 0;

an 'lvalue' isn't a pointer, so I don't see how you can possibly preserve
(with reasonable amount of hackery) Cs special handling of character
lvalues.

But - Joseph, do you have any idea if it in theory could be made to
work with char not being alias set zero?  The FE would need to mark
every lvalue of type char with a special flag.

Thanks,
Richard.


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