Skip to content

Commit

Permalink
[ASTImporter] Added import of CXXStdInitializerListExpr
Browse files Browse the repository at this point in the history
Reviewers: a.sidorin

Reviewed By: a.sidorin

Subscribers: martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D48631

Patch by Balazs Keri!

llvm-svn: 335968
  • Loading branch information
martong committed Jun 29, 2018
1 parent 62a7f80 commit 07b01ff
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
14 changes: 14 additions & 0 deletions clang/lib/AST/ASTImporter.cpp
Expand Up @@ -384,6 +384,7 @@ namespace clang {
Expr *VisitCallExpr(CallExpr *E);
Expr *VisitLambdaExpr(LambdaExpr *LE);
Expr *VisitInitListExpr(InitListExpr *E);
Expr *VisitCXXStdInitializerListExpr(CXXStdInitializerListExpr *E);
Expr *VisitArrayInitLoopExpr(ArrayInitLoopExpr *E);
Expr *VisitArrayInitIndexExpr(ArrayInitIndexExpr *E);
Expr *VisitCXXDefaultInitExpr(CXXDefaultInitExpr *E);
Expand Down Expand Up @@ -6622,6 +6623,19 @@ Expr *ASTNodeImporter::VisitInitListExpr(InitListExpr *ILE) {
return To;
}

Expr *ASTNodeImporter::VisitCXXStdInitializerListExpr(
CXXStdInitializerListExpr *E) {
QualType T = Importer.Import(E->getType());
if (T.isNull())
return nullptr;

Expr *SE = Importer.Import(E->getSubExpr());
if (!SE)
return nullptr;

return new (Importer.getToContext()) CXXStdInitializerListExpr(T, SE);
}

Expr *ASTNodeImporter::VisitArrayInitLoopExpr(ArrayInitLoopExpr *E) {
QualType ToType = Importer.Import(E->getType());
if (ToType.isNull())
Expand Down
9 changes: 9 additions & 0 deletions clang/test/ASTMerge/std-initializer-list/Inputs/il.cpp
@@ -0,0 +1,9 @@
namespace std {
template <typename T>
struct initializer_list {
const T *begin, *end;
initializer_list();
};
} // namespace std

std::initializer_list<int> IL = {1, 2, 3, 4};
3 changes: 3 additions & 0 deletions clang/test/ASTMerge/std-initializer-list/test.cpp
@@ -0,0 +1,3 @@
// RUN: %clang_cc1 -emit-pch -o %t.1.ast %S/Inputs/il.cpp
// RUN: %clang_cc1 -ast-merge %t.1.ast -fsyntax-only %s 2>&1 | FileCheck --allow-empty %s
// CHECK-NOT: unsupported AST node

0 comments on commit 07b01ff

Please sign in to comment.