This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix call-clobbering (PRs 36373 and 36387)
On Fri, 30 May 2008, Daniel Berlin wrote:
> Something like the attached should fix the points-to results (I may
> have missed some is_special_var cases to remove, etc)
Thanks. I'll see if that fixes the wrong points-to results. It
would be nice to not need the "fixup" thing. Note that it really
needs to make sure all reachable memory is marked as points-to-anything.
The testsuite/gcc.dg/pr32328.c tests exactly this situation, you can
"extend" it by adding more indirection.
That is, the following variant currently fails (the store to
barptr->some_string is removed):
struct barstruct { char const* some_string; };
void changethepointer(struct barstruct***);
void baz()
{
struct barstruct bar1;
struct barstruct* barptr = &bar1;
struct barstruct** barptr2 = &barptr;
changethepointer(&barptr2);
barptr->some_string = "Everything OK";
}
I have opened PR36400 for the wrong points-to results issue and
assigned you to it.
Thanks,
Richard.