Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Sep 2024 19:47:35 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 1f9773e8d9e4 - main - misc/openvdb: fix build with clang 19
Message-ID:  <202409101947.48AJlZ8D076329@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1f9773e8d9e41c322b14ae6b199bd5a90de27aae

commit 1f9773e8d9e41c322b14ae6b199bd5a90de27aae
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-09-10 14:24:56 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-09-10 19:46:23 +0000

    misc/openvdb: fix build with clang 19
    
    Clang 19 now implements CWG 96 [1], which requires a template argument
    list after a 'template' keyword, resulting in errors similar to:
    
        /wrkdirs/usr/ports/misc/openvdb/work/openvdb-11.0.0/openvdb/openvdb/../openvdb/tree/NodeManager.h:330:31: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
          330 |                 OpT::template eval(mNodeOp, it);
              |                               ^
        /wrkdirs/usr/ports/misc/openvdb/work/openvdb-11.0.0/openvdb/openvdb/../openvdb/tree/NodeManager.h:350:31: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
          350 |                 OpT::template eval(mNodeOp, it);
              |                               ^
        /wrkdirs/usr/ports/misc/openvdb/work/openvdb-11.0.0/openvdb/openvdb/../openvdb/tree/NodeManager.h:375:31: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
          375 |                 OpT::template eval(*mNodeOp, it);
              |                               ^
    
    In these cases, appending "<>" is enough to satisfy the constraint.
    
    PR:             281418
    Approved by:    yuri (maintainer)
    MFH:            2024Q3
---
 .../files/patch-openvdb_openvdb_tree_NodeManager.h | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/misc/openvdb/files/patch-openvdb_openvdb_tree_NodeManager.h b/misc/openvdb/files/patch-openvdb_openvdb_tree_NodeManager.h
new file mode 100644
index 000000000000..e87fe2c85273
--- /dev/null
+++ b/misc/openvdb/files/patch-openvdb_openvdb_tree_NodeManager.h
@@ -0,0 +1,29 @@
+--- openvdb/openvdb/tree/NodeManager.h.orig	2023-11-01 20:31:11 UTC
++++ openvdb/openvdb/tree/NodeManager.h
+@@ -327,7 +327,7 @@ class NodeList (private)
+         void operator()(const NodeRange& range) const
+         {
+             for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
+-                OpT::template eval(mNodeOp, it);
++                OpT::template eval<>(mNodeOp, it);
+             }
+         }
+         const NodeOp mNodeOp;
+@@ -347,7 +347,7 @@ class NodeList (private)
+         void operator()(const NodeRange& range) const
+         {
+             for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
+-                OpT::template eval(mNodeOp, it);
++                OpT::template eval<>(mNodeOp, it);
+             }
+         }
+         const NodeOp& mNodeOp;
+@@ -372,7 +372,7 @@ class NodeList (private)
+         void operator()(const NodeRange& range)
+         {
+             for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
+-                OpT::template eval(*mNodeOp, it);
++                OpT::template eval<>(*mNodeOp, it);
+             }
+         }
+         void join(const NodeReducer& other)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202409101947.48AJlZ8D076329>