aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/ASTWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Serialization/ASTWriter.cpp')
-rw-r--r--clang/lib/Serialization/ASTWriter.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index 293b67a..8e219e5 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -8751,8 +8751,11 @@ void ASTRecordWriter::writeOpenACCClause(const OpenACCClause *C) {
writeSourceLocation(PC->getLParenLoc());
writeOpenACCVarList(PC);
- for (VarDecl *VD : PC->getInitRecipes())
- AddDeclRef(VD);
+ for (const OpenACCPrivateRecipe &R : PC->getInitRecipes()) {
+ static_assert(sizeof(R) == 2 * sizeof(int *));
+ AddDeclRef(R.AllocaDecl);
+ AddStmt(const_cast<Expr *>(R.InitExpr));
+ }
return;
}
case OpenACCClauseKind::Host: {
@@ -8773,7 +8776,9 @@ void ASTRecordWriter::writeOpenACCClause(const OpenACCClause *C) {
writeOpenACCVarList(FPC);
for (const OpenACCFirstPrivateRecipe &R : FPC->getInitRecipes()) {
- AddDeclRef(R.RecipeDecl);
+ static_assert(sizeof(R) == 3 * sizeof(int *));
+ AddDeclRef(R.AllocaDecl);
+ AddStmt(const_cast<Expr *>(R.InitExpr));
AddDeclRef(R.InitFromTemporary);
}
return;
@@ -8895,8 +8900,9 @@ void ASTRecordWriter::writeOpenACCClause(const OpenACCClause *C) {
writeOpenACCVarList(RC);
for (const OpenACCReductionRecipe &R : RC->getRecipes()) {
- static_assert(sizeof(OpenACCReductionRecipe) == sizeof(int *));
- AddDeclRef(R.RecipeDecl);
+ static_assert(sizeof(OpenACCReductionRecipe) == 2 * sizeof(int *));
+ AddDeclRef(R.AllocaDecl);
+ AddStmt(const_cast<Expr *>(R.InitExpr));
}
return;
}