From 68e9bb3756d0f9f620ee711b05c98b2d02abff85 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Tue, 22 Dec 2015 21:21:03 +0200 Subject: [PATCH] Fixed a regression when a default value uses a constructor with a temporary expression. Signed-off-by: Dimitar Dobrev --- src/CppParser/Parser.cpp | 2 ++ tests/CSharp/CSharp.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index caeb9d16..518c280c 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -2675,6 +2675,8 @@ AST::Expression* Parser::WalkExpression(clang::Expr* Expr) auto Cast = dyn_cast(SubTemporaryExpr); if (!Cast || Cast->getSubExprAsWritten()->getStmtClass() != Stmt::IntegerLiteralClass) return WalkExpression(SubTemporaryExpr); + return new AST::CXXConstructExpr(GetStringFromStatement(Expr), + WalkDeclaration(ConstructorExpr->getConstructor())); } } auto ConstructorExpression = new AST::CXXConstructExpr(GetStringFromStatement(Expr), diff --git a/tests/CSharp/CSharp.h b/tests/CSharp/CSharp.h index af04a23a..cae8b167 100644 --- a/tests/CSharp/CSharp.h +++ b/tests/CSharp/CSharp.h @@ -274,7 +274,7 @@ enum UntypedFlags UntypedFlags operator|(UntypedFlags lhs, UntypedFlags rhs); -struct QGenericArgument +struct DLL_API QGenericArgument { public: QGenericArgument(const char* name = 0);