This is the mail archive of the gcc-bugs@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]

[Bug tree-optimization/28410] [4.2 Regression] Wrong aliasing with global var grouping during call clobbering



------- Comment #2 from rguenth at gcc dot gnu dot org  2006-07-17 13:29 -------
Runnable testcase:

extern void abort(void);
struct Bar { int p; };
struct Foo { struct Bar *p; };
struct Bar p0 = { 0 };
struct Bar p1 = { 1 };
void bar(struct Foo *f)
{
  f->p = &p0;
}
int foo(struct Foo *f)
{
  f->p->p = 1;
  bar(f);
  return f->p->p;
}
int main()
{
  struct Foo f;
  f.p = &p1;
  if (foo(&f) != 0)
    abort ();
  return 0;
}


-- 


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


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