doxygen: fix build with gcc@10: for version 1.8.15 (#23680)
This commit is contained in:
parent
c22a5326d8
commit
b41ee03475
@ -0,0 +1,30 @@
|
|||||||
|
From 788440279e0f0fdc7dce27ec266d7d5c11bcda1c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthew Hatch <mrhatch97@gmail.com>
|
||||||
|
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 ) ;
|
@ -78,6 +78,10 @@ def determine_variants(cls, exes, version_str):
|
|||||||
# Also - https://github.com/doxygen/doxygen/pull/6588
|
# Also - https://github.com/doxygen/doxygen/pull/6588
|
||||||
patch('shared_ptr.patch', when='@1.8.14')
|
patch('shared_ptr.patch', when='@1.8.14')
|
||||||
|
|
||||||
|
# Support C++17's nested namespaces a::b::c. For details about this patch, see
|
||||||
|
# https://github.com/doxygen/doxygen/pull/6977/commits/788440279e0f0fdc7dce27ec266d7d5c11bcda1c
|
||||||
|
patch('cpp17_namespaces.patch', when='@1.8.15')
|
||||||
|
|
||||||
# Workaround for gcc getting stuck in an infinite loop
|
# Workaround for gcc getting stuck in an infinite loop
|
||||||
patch('gcc-partial-inlining-bug.patch', when='@1.8.20: %gcc@7')
|
patch('gcc-partial-inlining-bug.patch', when='@1.8.20: %gcc@7')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user