warn-unused-value.c revision 0faede6f31b07bcec7b776f2b420c3ea9bb3e58c
1// RUN: %clang_cc1 -fsyntax-only -verify -Wunused-value %s 2 3int i = 0; 4int j = 0; 5 6void foo(); 7 8// PR4806 9void pr4806() { 10 1,foo(); // expected-warning {{expression result unused}} 11 12 // other 13 foo(); 14 i; // expected-warning {{expression result unused}} 15 16 i,foo(); // expected-warning {{expression result unused}} 17 foo(),i; // expected-warning {{expression result unused}} 18 19 i,j,foo(); // expected-warning {{expression result unused}} 20 i,foo(),j; // expected-warning {{expression result unused}} 21 foo(),i,j; // expected-warning {{expression result unused}} 22 23 i++; 24 25 i++,foo(); 26 foo(),i++; 27 28 i++,j,foo(); // expected-warning {{expression result unused}} 29 i++,foo(),j; // expected-warning {{expression result unused}} 30 foo(),i++,j; // expected-warning {{expression result unused}} 31 32 i,j++,foo(); // expected-warning {{expression result unused}} 33 i,foo(),j++; // expected-warning {{expression result unused}} 34 foo(),i,j++; // expected-warning {{expression result unused}} 35 36 i++,j++,foo(); 37 i++,foo(),j++; 38 foo(),i++,j++; 39 40 {}; 41 ({}); 42 ({}),foo(); 43 foo(),({}); 44 45 (int)1U; // expected-warning {{expression result unused}} 46 (void)1U; 47 48 // pointer to volatile has side effect (thus no warning) 49 int* pi = &i; 50 volatile int* pj = &j; 51 *pi; // expected-warning {{expression result unused}} 52 *pj; 53} 54