/* { 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; }