[Bug 280776] devel/llvm14: fix build with clang 19

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 12 Aug 2024 14:10:16 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280776

            Bug ID: 280776
           Summary: devel/llvm14: fix build with clang 19
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: brooks@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: brooks@FreeBSD.org
             Flags: maintainer-feedback?(brooks@FreeBSD.org)

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/devel/llvm14/work/llvm-project-14.0.6.src/flang/include/flang/Evaluate/integer.h:310:32:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
      310 |       auto back{FROM::template ConvertSigned(result.value)};
          |                                ^
   
/wrkdirs/usr/ports/devel/llvm14/work/llvm-project-14.0.6.src/flang/lib/Evaluate/fold-real.cpp:72:22:
warning: variable 'z' set but not used [-Wunused-but-set-variable]
       72 |     } else if (auto *z{UnwrapExpr<Expr<SomeComplex>>(args[0])}) {
          |                      ^
   
/wrkdirs/usr/ports/devel/llvm14/work/llvm-project-14.0.6.src/flang/lib/Evaluate/fold-real.cpp:69:15:
warning: variable 'x' set but not used [-Wunused-but-set-variable]
       69 |     if (auto *x{UnwrapExpr<Expr<SomeReal>>(args[0])}) {
          |               ^
   
/wrkdirs/usr/ports/devel/llvm14/work/llvm-project-14.0.6.src/flang/lib/Evaluate/fold-real.cpp:148:60:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
      148 |                                                           
SCALE(y)};
          |                                                            ^
   
/wrkdirs/usr/ports/devel/llvm14/work/llvm-project-14.0.6.src/flang/runtime/reduction-templates.h:89:24:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
       89 |   accumulator.template GetResult(&result);
          |                        ^
   
/wrkdirs/usr/ports/devel/llvm14/work/llvm-project-14.0.6.src/flang/runtime/reduction-templates.h:130:24:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
      130 |   accumulator.template GetResult(result, zeroBasedDim);
          |                        ^
   
/wrkdirs/usr/ports/devel/llvm14/work/llvm-project-14.0.6.src/flang/runtime/reduction-templates.h:158:24:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
      158 |   accumulator.template GetResult(result, zeroBasedDim);
          |                        ^
   
/wrkdirs/usr/ports/devel/llvm14/work/grpc-1.62.2/src/core/lib/promise/detail/basic_seq.h:103:38:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
      103 |                     Traits::template CallSeqFactory(f_, *cur_,
std::move(arg)));
          |                                      ^

Upstream has committed a fix to their main branch [2], but it does not
apply cleanly to 14.0.6, so add a backported patch.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#96
[2]
https://github.com/llvm/llvm-project/commit/7bc7672925f8154be3b8220365d3f269ac43621c

-- 
You are receiving this mail because:
You are the assignee for the bug.