forked from OSchip/llvm-project
[ASTImporter] Add support for import of CXXInheritedCtorInitExpr.
Reviewers: a.sidorin, martong Reviewed By: martong Subscribers: rnkovacs, a_sidorin, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D49293 llvm-svn: 337898
This commit is contained in:
parent
f0b379c959
commit
95baa840c2
|
@ -460,6 +460,7 @@ namespace clang {
|
|||
Expr *VisitLambdaExpr(LambdaExpr *LE);
|
||||
Expr *VisitInitListExpr(InitListExpr *E);
|
||||
Expr *VisitCXXStdInitializerListExpr(CXXStdInitializerListExpr *E);
|
||||
Expr *VisitCXXInheritedCtorInitExpr(CXXInheritedCtorInitExpr *E);
|
||||
Expr *VisitArrayInitLoopExpr(ArrayInitLoopExpr *E);
|
||||
Expr *VisitArrayInitIndexExpr(ArrayInitIndexExpr *E);
|
||||
Expr *VisitCXXDefaultInitExpr(CXXDefaultInitExpr *E);
|
||||
|
@ -6772,6 +6773,22 @@ Expr *ASTNodeImporter::VisitCXXStdInitializerListExpr(
|
|||
return new (Importer.getToContext()) CXXStdInitializerListExpr(T, SE);
|
||||
}
|
||||
|
||||
Expr *ASTNodeImporter::VisitCXXInheritedCtorInitExpr(
|
||||
CXXInheritedCtorInitExpr *E) {
|
||||
QualType T = Importer.Import(E->getType());
|
||||
if (T.isNull())
|
||||
return nullptr;
|
||||
|
||||
auto *Ctor = cast_or_null<CXXConstructorDecl>(Importer.Import(
|
||||
E->getConstructor()));
|
||||
if (!Ctor)
|
||||
return nullptr;
|
||||
|
||||
return new (Importer.getToContext()) CXXInheritedCtorInitExpr(
|
||||
Importer.Import(E->getLocation()), T, Ctor,
|
||||
E->constructsVBase(), E->inheritedFromVBase());
|
||||
}
|
||||
|
||||
Expr *ASTNodeImporter::VisitArrayInitLoopExpr(ArrayInitLoopExpr *E) {
|
||||
QualType ToType = Importer.Import(E->getType());
|
||||
if (ToType.isNull())
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
class A {
|
||||
public:
|
||||
A(int a) : a(a) {}
|
||||
int a;
|
||||
};
|
||||
class B : public A {
|
||||
using A::A;
|
||||
};
|
||||
class C : public B {
|
||||
C() : B(1) {}
|
||||
};
|
|
@ -0,0 +1,6 @@
|
|||
// RUN: clang-import-test -dump-ast -expression=%s -import=%S/Inputs/A.cpp | FileCheck %s
|
||||
// CHECK: | | | `-CXXInheritedCtorInitExpr
|
||||
|
||||
void foo() {
|
||||
C c;
|
||||
}
|
Loading…
Reference in New Issue