From d125869df5954a5af8ca7cddbc5cf879157c46b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20M=C3=BCller?= Date: Tue, 11 Apr 2017 19:15:52 +0200 Subject: [PATCH] Fix infinite recursion in decltype type --- src/libclang/type_parser.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libclang/type_parser.cpp b/src/libclang/type_parser.cpp index 4102a5b..1b0f3f1 100644 --- a/src/libclang/type_parser.cpp +++ b/src/libclang/type_parser.cpp @@ -435,7 +435,7 @@ namespace }); } - std::unique_ptr try_parse_decltype_type(const detail::parse_context& context, + std::unique_ptr try_parse_decltype_type(const detail::parse_context&, const CXCursor& cur, const CXType& type) { if (clang_isExpression(clang_getCursorKind(cur))) @@ -447,10 +447,9 @@ namespace DEBUG_ASSERT(!spelling.empty() && spelling.back() == ')', detail::parse_error_handler{}, type, "unexpected spelling"); spelling.pop_back(); + return cpp_decltype_type::build( - cpp_unexposed_expression::build(detail::parse_type(context, cur, - clang_getCanonicalType(type)), - spelling)); + cpp_unexposed_expression::build(cpp_unexposed_type::build(""), spelling)); }); }