------- Comment #16 from rguenth at gcc dot gnu dot org 2006-08-26 20:30 ------- If you change the prototype to take char* as argument we figure out clobbering correctly:
--- t.i.030t.alias1 2006-08-26 22:28:40.000000000 +0200 +++ t.i.030t.alias1.ok 2006-08-26 22:27:33.000000000 +0200 @@ -33,7 +33,7 @@ Variable: SMT.5, UID 1550, int, is addressable, is global, call clobbered (, is global var ) -Variable: a, UID 1529, const GLint *, default def: a_1 +Variable: a, UID 1529, char *, default def: a_1 Variable: b, UID 1532, int * @@ -174,11 +174,11 @@ Variable: blist, UID 1526, const int * -Variable: list, UID 1527, int[32], is addressable, default def: list_4 +Variable: list, UID 1527, int[32], is aliased, is addressable, call clobbered (, passed to call, is global var ), default def: list_4 -Variable: blist.0, UID 1528, const GLint *, symbol memory tag: SMT.30 +Variable: blist.0, UID 1528, char *, symbol memory tag: SMT.30 -Variable: SMT.30, UID 1575, const GLint, is addressable, is global, call clobbered (, passed to call, is global var ) +Variable: SMT.30, UID 1575, char, is addressable, is global, call clobbered (, passed to call, is global var ), may aliases: { list } @@ -195,16 +195,16 @@ Aliased symbols -list, UID 1527, int[32], is addressable, default def: list_4 -SMT.30, UID 1575, const GLint, is addressable, is global, call clobbered (, passed to call, is global var ) +list, UID 1527, int[32], is aliased, is addressable, call clobbered (, passed to call, is global var ), default def: list_4 +SMT.30, UID 1575, char, is addressable, is global, call clobbered (, passed to call, is global var ), may aliases: { list } Dereferenced pointers -blist.0, UID 1528, const GLint *, symbol memory tag: SMT.30 +blist.0, UID 1528, char *, symbol memory tag: SMT.30 Symbol memory tags -SMT.30, UID 1575, const GLint, is addressable, is global, call clobbered (, passed to call, is global var ) +SMT.30, UID 1575, char, is addressable, is global, call clobbered (, passed to call, is global var ), may aliases: { list } Flow-sensitive alias information for find @@ -257,7 +257,7 @@ { int list[32]; const int * blist; - const GLint * blist.0; + char * blist.0; <bb 2>: if (alistp_2 != 0B) goto <L0>; else goto <L1>; @@ -271,10 +271,11 @@ list[3] = 42; blist_6 = &list; + # list_8 = PHI <list_4(3), list_5(4)>; # blist_1 = PHI <blist_3(3), blist_6(4)>; <L2>:; - blist.0_7 = (const GLint *) blist_1; - # SMT.30_9 = V_MAY_DEF <SMT.30_8>; + blist.0_7 = (char *) blist_1; + # list_9 = V_MAY_DEF <list_8>; aglChoosePixelFormat (blist.0_7); return; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778