init.
Braced initializers were not accepted after the last fix in the initialier.Restored previous functionality.
}
PreferredType.enterVariableInit(Tok.getLocation(), OmpPrivParm);
- ExprResult Init = ParseAssignmentExpression();
+ ExprResult Init = ParseInitializer();
if (Init.isInvalid()) {
SkipUntil(tok::r_paren, tok::annot_pragma_openmp_end, StopBeforeMatch);
int s;
};
#pragma omp declare reduction(+: struct S: omp_out.s += omp_in.s) // initializer(omp_priv = { .s = 0 })
+#pragma omp declare reduction(&: struct S: omp_out.s += omp_in.s) initializer(omp_priv = { .s = 0 })
+#pragma omp declare reduction(|: struct S: omp_out.s += omp_in.s) initializer(omp_priv = { 0 })
int fun(int arg) {
struct S s;// expected-note {{'s' defined here}}