@@ -1761,9 +1761,9 @@ void OmpVisitor::ProcessReductionSpecifier(
17611761
17621762 auto &typeList{std::get<parser::OmpTypeNameList>(spec.t )};
17631763
1764- // Create a temporary variable declaration for the three variables
1765- // used in the reduction specifier (omp_out, omp_in and omp_priv) ,
1766- // with of the type in the typeList.
1764+ // Create a temporary variable declaration for the four variables
1765+ // used in the reduction specifier and initializer (omp_out, omp_in,
1766+ // omp_priv and omp_orig), with the type in the typeList.
17671767 //
17681768 // In theory it would be possible to create only variables that are
17691769 // actually used, but that requires walking the entire parse-tree of the
@@ -1777,7 +1777,7 @@ void OmpVisitor::ProcessReductionSpecifier(
17771777 // as variables in the outer scope, if there's more than one type in the
17781778 // typelist, duplicate symbols will be reported.
17791779 const parser::CharBlock ompVarNames[]{
1780- {" omp_in" , 6 }, {" omp_out" , 7 }, {" omp_priv" , 8 }};
1780+ {" omp_in" , 6 }, {" omp_out" , 7 }, {" omp_priv" , 8 }, { " omp_orig " , 8 } };
17811781
17821782 for (auto &t : typeList.v ) {
17831783 PushScope (Scope::Kind::OtherConstruct, nullptr );
0 commit comments