From 788440279e0f0fdc7dce27ec266d7d5c11bcda1c Mon Sep 17 00:00:00 2001 From: Matthew Hatch Date: Thu, 9 May 2019 01:05:43 -0700 Subject: [PATCH] Fixed C++17-namespace assignment bug Added scope save and restore before and after namespace parsing --- src/scanner.l | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/scanner.l b/src/scanner.l index d3902b38d..5395e499c 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -3941,6 +3941,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) else { current->endBodyLine = yyLineNr; + Entry * original_root = current_root; // save root this namespace is in if (current->section == Entry::NAMESPACE_SEC && current->type == "namespace") { int split_point; @@ -4005,6 +4006,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) ) { // namespaces and interfaces and java classes ends with a closing bracket without semicolon current->reset(); + current_root = original_root; // restore scope from before namespace descent initEntry(); memspecEntry = 0; BEGIN( FindMembers ) ;