compare.c revision 149f1386c60aa07de0f6a5d43ab524b22af68059
1// RUN: clang-cc -fsyntax-only -pedantic -verify %s 2 3int test(char *C) { // nothing here should warn. 4 return C != ((void*)0); 5 return C != (void*)0; 6 return C != 0; 7} 8 9int equal(char *a, const char *b) 10{ 11 return a == b; 12} 13 14int arrays(char (*a)[5], char(*b)[10], char(*c)[5]) { 15 int d = (a == c); 16 return a == b; // expected-warning {{comparison of distinct pointer types}} 17} 18 19int pointers(int *a) 20{ 21 return a > 0; // expected-warning {{ordered comparison between pointer and integer}} 22 return a > (void *)0; // expected-warning {{comparison of distinct pointer types}} 23} 24 25int function_pointers(int (*a)(int), int (*b)(int)) 26{ 27 return a > b; // expected-warning {{ordered comparison of function pointers}} 28 return function_pointers > function_pointers; // expected-warning {{ordered comparison of function pointers}} 29 return a == (void *) 0; 30 return a == (void *) 1; // expected-warning {{comparison of distinct pointer types}} 31} 32