From a75e670e0e228e0a738eb65c7128a01446b4135c Mon Sep 17 00:00:00 2001 From: Alois Wohlschlager Date: Sat, 3 Jul 2021 11:07:23 +0200 Subject: [PATCH] Fix ODR violations Upstream: not reachable Various traversal code reused class names (Boundary, pathStepRidge, pathStepFacet) in violation of the one definition rule. Put the respective classes into anonymous namespaces to comply with ODR. --- src/gfanlib_traversal.cpp | 4 ++++ src/symmetrictraversal.cpp | 4 ++++ src/tropicaltraverse.cpp | 5 +++++ 3 files changed, 13 insertions(+) Index: gfan0.7/src/gfanlib_traversal.cpp =================================================================== --- gfan0.7.orig/src/gfanlib_traversal.cpp +++ gfan0.7/src/gfanlib_traversal.cpp @@ -45,6 +45,8 @@ bool FanBuilder::process(FanTraverser &t +namespace +{ /** * Classes @@ -159,6 +161,8 @@ public: } }; +} + /** Rewrite these comments. Index: gfan0.7/src/symmetrictraversal.cpp =================================================================== --- gfan0.7.orig/src/symmetrictraversal.cpp +++ gfan0.7/src/symmetrictraversal.cpp @@ -103,6 +103,8 @@ bool SymmetricTargetVertexSetBuilder::pr in the computation is made these edges will be deleted. */ +namespace +{ class Boundary { @@ -231,6 +233,8 @@ public: } }; +} + /** Rewrite these comments. Index: gfan0.7/src/tropicaltraverse.cpp =================================================================== --- gfan0.7.orig/src/tropicaltraverse.cpp +++ gfan0.7/src/tropicaltraverse.cpp @@ -104,6 +104,9 @@ public: } }; +namespace +{ + /** Rewrite these comments. @@ -135,6 +138,8 @@ struct pathStepFacet using namespace tropicalTraverseNamespace; +} + /** We need to simulate two mutually recursive functions. An actual implementation of these two functions would propably not work since