
/* { dg-do compile } */
/* { dg-options "-Wuninitialized -O2" } */
/* Pick a particular tuning to pin down BRANCH_COST.  */
/* { dg-additional-options "-mtune=cortex-a15" { target arm*-*-* } } */

int g;
void bar();
void blah(int);

int foo (int n, int l, int m, int r)
{
  int v;

  if (n || m || r || l)
    v = r;

  if (m) g++;
  else   bar();

  if ( n ||  m || r || l)
      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */

  if ( n )
      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */

  if ( l )
      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */

  return 0;
}

int foo_2 (int n, int l, int m, int r)
{
  int v;

  if (n || m || r )
    v = r;

  if (m) g++;
  else   bar();

  if ( n || m || r || l)
      blah(v); /* { dg-warning "uninitialized" "warning" } */

  return 0;
}
