1 // RUN: not %clang_cc1 -E %s 2>&1 | FileCheck %s
2 // PR2220
3 
4 // CHECK: invalid token at start of a preprocessor expression
5 #if 1 * * 2
6 #endif
7 
8 // CHECK: token is not a valid binary operator in a preprocessor subexpression
9 #if 4 [ 2
10 #endif
11 
12 
13 // PR2284 - The constant-expr production does not including comma.
14 // CHECK: [[@LINE+1]]:14: error: expected end of line in preprocessor expression
15 #if 1 ? 2 : 0, 1
16 #endif
17 
18 // CHECK: [[@LINE+1]]:5: error: function-like macro 'FOO' is not defined
19 #if FOO(1, 2, 3)
20 #endif
21 
22 // CHECK: [[@LINE+1]]:9: error: function-like macro 'BAR' is not defined
23 #if 1 + BAR(1, 2, 3)
24 #endif
25 
26 // CHECK: [[@LINE+1]]:10: error: token is not a valid binary operator
27 #if (FOO)(1, 2, 3)
28 #endif
29