------- Comment #10 from manu at gcc dot gnu dot org 2008-11-02 12:53 ------- (In reply to comment #9) > > This is my current patch and it works in this testcase. However, it also > > triggers on cases like: const char *p = str + sizeof(str) > > > > Perhaps I am doing this at the wrong place. Any suggestions? > > Keep in mind that one-after the string is ok, so ...
Do you mean one after the null character? If you have str = "abcd". Then sizeof(str) is 5 and str + sizeof(str) points outside the string. (str[4] is the null character). > > > > @@ -3322,10 +3323,36 @@ pointer_int_sum (enum tree_code resultco > > + { > > + HOST_WIDE_INT max = TREE_STRING_LENGTH (string_cst) - 1; > > ... the -1 is wrong here. > TREE_STRING_LENGTH is the size of the character array, not the string. Are you sure it is wrong? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35652