blob: 51f77317385ca1674c9155dd5bd1852df49924d9 [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -fsyntax-only -pedantic -verify %s
Chris Lattnerd28f8152007-08-26 01:10:14 +00002
3int test(char *C) { // nothing here should warn.
4 return C != ((void*)0);
5 return C != (void*)0;
6 return C != 0;
7}
8
Steve Naroff77878cc2007-08-27 04:08:11 +00009int equal(char *a, const char *b)
10{
11 return a == b;
12}
Eli Friedman4e92acf2008-02-06 04:53:22 +000013
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}
Chris Lattner149f1382009-06-30 06:24:05 +000018
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}