tree-optimization/115137 - more ptr-vs-ptr compare fixes
The following fixes the omission of const-pool included in NONLOCAL. PR tree-optimization/115137 * tree-ssa-structalias.cc (pt_solution_includes_const_pool): NONLOCAL also includes constant pool entries. * gcc.dg/torture/pr115137.c: New testcase.
This commit is contained in:
parent
7f35863ebb
commit
85f7828679
2 changed files with 35 additions and 0 deletions
34
gcc/testsuite/gcc.dg/torture/pr115137.c
Normal file
34
gcc/testsuite/gcc.dg/torture/pr115137.c
Normal file
|
@ -0,0 +1,34 @@
|
|||
/* { dg-do run } */
|
||||
|
||||
struct a {
|
||||
int b;
|
||||
} c;
|
||||
|
||||
int d;
|
||||
long e;
|
||||
|
||||
static void f(char *g, char *h, struct a *l) {
|
||||
char a[1024];
|
||||
int j = 0;
|
||||
|
||||
if (d)
|
||||
h = a;
|
||||
|
||||
for (; g < h; g++)
|
||||
if (__builtin_iscntrl(*g))
|
||||
++j;
|
||||
|
||||
while (l->b < j)
|
||||
;
|
||||
}
|
||||
|
||||
int main() {
|
||||
static const struct {
|
||||
char *input;
|
||||
} k[] = {{"somepage.html"}, {""}};
|
||||
|
||||
for (unsigned int i = 0; i < 1; ++i) {
|
||||
e = __builtin_strlen(k[i].input);
|
||||
f(k[i].input, k[i].input + e, &c);
|
||||
}
|
||||
}
|
|
@ -7087,6 +7087,7 @@ bool
|
|||
pt_solution_includes_const_pool (struct pt_solution *pt)
|
||||
{
|
||||
return (pt->const_pool
|
||||
|| pt->nonlocal
|
||||
|| (pt->escaped && (!cfun || cfun->gimple_df->escaped.const_pool))
|
||||
|| (pt->ipa_escaped && ipa_escaped_pt.const_pool));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue