diff options
Diffstat (limited to 'clang/lib/Serialization/ASTReaderStmt.cpp')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 8bd94b48ce2..864c04283b0 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -182,6 +182,9 @@ namespace clang { void VisitSubstNonTypeTemplateParmPackExpr( SubstNonTypeTemplateParmPackExpr *E); void VisitOpaqueValueExpr(OpaqueValueExpr *E); + + // CUDA Expressions + void VisitCUDAKernelCallExpr(CUDAKernelCallExpr *E); }; } @@ -1323,6 +1326,15 @@ void ASTStmtReader::VisitOpaqueValueExpr(OpaqueValueExpr *E) { E->Loc = ReadSourceLocation(Record, Idx); } +//===----------------------------------------------------------------------===// +// CUDA Expressions and Statements +//===----------------------------------------------------------------------===// + +void ASTStmtReader::VisitCUDAKernelCallExpr(CUDAKernelCallExpr *E) { + VisitCallExpr(E); + E->setConfig(cast<CallExpr>(Reader.ReadSubExpr())); +} + Stmt *ASTReader::ReadStmt(PerFileData &F) { switch (ReadingKind) { case Read_Decl: @@ -1872,6 +1884,10 @@ Stmt *ASTReader::ReadStmtFromStream(PerFileData &F) { case EXPR_OPAQUE_VALUE: S = new (Context) OpaqueValueExpr(Empty); break; + + case EXPR_CUDA_KERNEL_CALL: + S = new (Context) CUDAKernelCallExpr(*Context, Empty); + break; } // We hit a STMT_STOP, so we're done with this expression. |

