| 1 | // RUN: %clang_cc1 \ |
| 2 | // RUN: -fms-compatibility -x c++-cpp-output \ |
| 3 | // RUN: -ffreestanding -fsyntax-only -Werror \ |
| 4 | // RUN: %s -verify |
| 5 | |
| 6 | |
| 7 | # 1 "t.cpp" |
| 8 | # 1 "query.h" 1 3 4 |
| 9 | // MS header <query.h> uses operator keyword as field name. |
| 10 | // Compile without syntax errors. |
| 11 | struct tagRESTRICTION |
| 12 | { |
| 13 | union _URes |
| 14 | { |
| 15 | int or; // Note use of cpp operator token |
| 16 | } res; |
| 17 | }; |
| 18 | ; |
| 19 | |
| 20 | int aa ( int x) |
| 21 | { |
| 22 | // In system header code, treat operator keyword as identifier. |
| 23 | if ( // expected-note{{to match this '('}} |
| 24 | x>1 or x<0) return 1; // expected-error{{expected ')'}} |
| 25 | else return 0; |
| 26 | } |
| 27 | |
| 28 | |