Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/Walways-true-2.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* Make sure we don't assume that a weak symbol is always non-NULL. This is just like Walways-true-1.C, except that it uses a weak symbol. Origin: Ian Lance Taylor <iant@google.com>. */ /* { dg-do compile } */ /* { dg-options "-Waddress" } */ /* { dg-require-weak "" } */ extern int foo (int) __attribute__ ((weak)); int i __attribute__ ((weak)); void bar (int a) { lab: if (foo) foo (0); if (foo (1)) ; if (&i) foo (2); if (i) foo (3); if (&a) /* { dg-warning "always evaluate as" "correct warning" } */ foo (4); if (a) foo (5); if (&&lab) /* { dg-warning "always evaluate as" "correct warning" } */ foo (6); if (foo == 0) foo (7); if (foo (1) == 0) foo (8); if (&i == 0) foo (9); if (i == 0) foo (10); if (&a == 0) /* { dg-warning "the comparison will always evaluate as 'false'" "correct warning" } */ foo (11); if (a == 0) foo (12); if (&&lab == 0) /* { dg-warning "the comparison will always evaluate as 'false'" "correct warning" } */ foo (13); if (0 == foo) foo (14); if (0 == foo (1)) foo (15); if (0 == &i) foo (16); if (0 == i) foo (17); if (0 == &a) /* { dg-warning "the comparison will always evaluate as 'false'" "correct warning" } */ foo (18); if (0 == a) foo (19); if (0 == &&lab) /* { dg-warning "the comparison will always evaluate as 'false'" "correct warning" } */ foo (20); }