diff options
Diffstat (limited to 'clang/test/Preprocessor/cxx_oper_keyword.cpp')
-rw-r--r-- | clang/test/Preprocessor/cxx_oper_keyword.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/clang/test/Preprocessor/cxx_oper_keyword.cpp b/clang/test/Preprocessor/cxx_oper_keyword.cpp index 3fc246dd6c2..5a4653f1a7a 100644 --- a/clang/test/Preprocessor/cxx_oper_keyword.cpp +++ b/clang/test/Preprocessor/cxx_oper_keyword.cpp @@ -1,7 +1,22 @@ -// RUN: not %clang_cc1 %s -E -// RUN: %clang_cc1 %s -E -fno-operator-names +// RUN: %clang_cc1 %s -E -verify -DOPERATOR_NAMES +// RUN: %clang_cc1 %s -E -verify -fno-operator-names -// Not valid in C++ unless -fno-operator-names is passed. -#define and foo +#ifndef OPERATOR_NAMES +//expected-error@+3 {{token is not a valid binary operator in a preprocessor subexpression}} +#endif +// Valid because 'and' is a spelling of '&&' +#if defined foo and bar +#endif + +// Not valid in C++ unless -fno-operator-names is passed: +#ifdef OPERATOR_NAMES +//expected-error@+2 {{C++ operator 'and' cannot be used as a macro name}} +#endif +#define and foo +#ifdef OPERATOR_NAMES +//expected-error@+2 {{C++ operator 'and' cannot be used as a macro name}} +#endif +#if defined and +#endif |