blob: 9552b736c30a4fe872583a49c938bdd879db0060 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-local-pure-const-details -fdelete-null-pointer-checks" } */
void *foo(int cond1, int cond2, int cond3)
{
void *ret;
void *a;
void *b;
if (cond1)
a = __builtin_malloc (10);
else
a = __builtin_malloc (20);
if (cond2)
b = __builtin_malloc (30);
else
b = __builtin_malloc (40);
if (cond3)
ret = a;
else
ret = b;
return ret;
}
void *foo2(int cond1, int cond2, int cond3)
{
void *ret;
void *a;
void *b;
void bar(void *, void *);
if (cond1)
a = __builtin_malloc (10);
else
a = __builtin_malloc (20);
if (cond2)
b = __builtin_malloc (30);
else
b = __builtin_malloc (40);
bar (a, b);
if (cond3)
ret = a;
else
ret = b;
return ret;
}
/* { dg-final { scan-tree-dump "Function found to be malloc: foo" "local-pure-const1" } } */
/* { dg-final { scan-tree-dump-not "Function found to be malloc: foo2" "local-pure-const1" } } */