@@ -2027,7 +2027,8 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
2027
2027
const auto *StreamDecl = Ty->getAsCXXRecordDecl ();
2028
2028
CollectionInitExprs.push_back (CreateInitListExpr (StreamDecl));
2029
2029
2030
- MemberExprBases.push_back (BuildMemberExpr (MemberExprBases.back (), FD));
2030
+ if (!IsArrayElement (FD, Ty))
2031
+ MemberExprBases.push_back (BuildMemberExpr (MemberExprBases.back (), FD));
2031
2032
return true ;
2032
2033
}
2033
2034
@@ -2036,8 +2037,6 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
2036
2037
// Stream requires that its 'init' calls happen after its accessors init
2037
2038
// calls, so add them here instead.
2038
2039
const auto *StreamDecl = Ty->getAsCXXRecordDecl ();
2039
- if (!IsArrayElement (FD, Ty))
2040
- MemberExprBases.push_back (BuildMemberExpr (MemberExprBases.back (), FD));
2041
2040
2042
2041
createSpecialMethodCall (StreamDecl, InitMethodName, BodyStmts);
2043
2042
createSpecialMethodCall (StreamDecl, FinalizeMethodName, FinalizeStmts);
@@ -2046,23 +2045,24 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
2046
2045
MemberExprBases.pop_back ();
2047
2046
2048
2047
CollectionInitExprs.pop_back ();
2049
- MemberExprBases.pop_back ();
2050
2048
return true ;
2051
2049
}
2052
2050
2053
2051
bool enterStruct (const CXXRecordDecl *RD, FieldDecl *FD, QualType Ty) final {
2054
2052
++ContainerDepth;
2055
2053
addCollectionInitListExpr (Ty->getAsCXXRecordDecl ());
2056
2054
2057
- MemberExprBases.push_back (BuildMemberExpr (MemberExprBases.back (), FD));
2055
+ if (!IsArrayElement (FD, Ty))
2056
+ MemberExprBases.push_back (BuildMemberExpr (MemberExprBases.back (), FD));
2058
2057
return true ;
2059
2058
}
2060
2059
2061
2060
bool leaveStruct (const CXXRecordDecl *, FieldDecl *FD, QualType Ty) final {
2062
2061
--ContainerDepth;
2063
2062
CollectionInitExprs.pop_back ();
2064
2063
2065
- MemberExprBases.pop_back ();
2064
+ if (!IsArrayElement (FD, Ty))
2065
+ MemberExprBases.pop_back ();
2066
2066
return true ;
2067
2067
}
2068
2068
0 commit comments