I am continuing to make out Lit tests C++11 compatible.
There are two tests in this patch.
Both tests verify parse errors with ill formed OpenMP expressions.
test/OpenMP/declare_reduction_messages.cpp
In C++11, an opening square bracket is the start of a lambda capture.
Therefore, a unmatched opening square bracket will cause the following diagnostics change.
C++98: error: expected '(' after 'initializer'
error: expected expression
warning: extra tokens at the end of '#pragma omp declare reduction' are ignored [-Wextra-tokens]
C++11: error: expected '(' after 'initializer'
error: expected variable name or 'this' in lambda capture list
error: expected ')'
note: to match this '('test/OpenMP/openmp_check.cpp
This test is created in response to bug 25221, where C++11 code running under C++98 causes the parser to go into an infinite loop.
Since this is C++11 code, all expected diagnostics will go away when compiling at C++11.
Therefore, guard all of the following diagnostics under C++98.
C++98: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
error: expected expression
error: expected ';' at end of declaration
C++98: error: C++ requires a type specifier for all declarations
C++98: error: expected unqualified-id
C++98: error: extraneous closing brace ('}')