/* PR tree-optimization/92056
   { dg-do compile }
   { dg-options "-O2 -fdump-tree-optimized" }
   Xfailed until pr93518 is resolved.
   { dg-final { scan-tree-dump-times "return 1;" 2 "optimized" { xfail *-*-* } } }
   { dg-final { scan-tree-dump-not "strcmp \\(" "optimized" { xfail *-*-* } } } */

void bar (int, char *);

int
foo (int x, char *y, const char *z)
{
  char *a;
  __builtin_sprintf (y, z);
  if (x == 3)
    a = __builtin_malloc (5);
  else if (x == 7)
    a = __builtin_malloc (6);
  else
    a = __builtin_malloc (7);
  bar (x, a);
  return __builtin_strcmp (a, "abcdefg") != 0;
}

int
baz (int x)
{
  char *a;
  if (x == 3)
    a = __builtin_malloc (5);
  else if (x == 7)
    a = __builtin_malloc (6);
  else
    a = __builtin_malloc (7);
  bar (x, a);
  return __builtin_strcmp (a, "abcdefg") != 0;
}
