diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index d5c55a2c3586375462aba069253e2e29ffcbb654..dc9d2da509c4990ea05f80dbaf1179dabfd1c1c4 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -2786,7 +2786,7 @@ bool Parser::parseCondition(ExpressionAST *&node)
     if (parseTypeSpecifier(type_specifier)) {
         DeclaratorAST *declarator = 0;
         if (parseInitDeclarator(declarator, /*acceptStructDeclarator=*/false)) {
-            if (declarator->initializer) {
+            if (declarator->initializer && declarator->equals_token) {
                 ConditionAST *ast = new (_pool) ConditionAST;
                 ast->type_specifier_list = type_specifier;
                 ast->declarator = declarator;
@@ -5658,6 +5658,7 @@ bool Parser::parseTrailingReturnType(TrailingReturnTypeAST *&node)
 
     parseTrailingTypeSpecifierSeq(ast->type_specifiers);
     parseAbstractDeclarator(ast->declarator);
+    node = ast;
     return true;
 }