[Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Aug 26 20:30:00 GMT 2006



------- 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



More information about the Gcc-bugs mailing list