1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00

devel/simdjson: fix build with clang 19

With clang 19, if a port uses simdjson.h, it leads to compile errors:

    In file included from /wrkdirs/usr/ports/sysutils/intel-pcm/work/pcm-202405/src/pcm-raw.cpp:31:
    /usr/local/include/simdjson.h:6156:13: error: no member named 'print_newline' in 'base_formatter<formatter>'
     6156 |       this->print_newline();
          |       ~~~~  ^
    /usr/local/include/simdjson.h:6160:13: error: no member named 'print_indents' in 'base_formatter<formatter>'
     6160 |       this->print_indents(depth);
          |       ~~~~  ^
    /usr/local/include/simdjson.h:6164:13: error: no member named 'print_space' in 'base_formatter<formatter>'
     6164 |       this->print_space();
          |       ~~~~  ^

Upstream <https://github.com/simdjson/simdjson/commit/5d35e7ca> fixes
this, but it does not directly add the change to the generated single
header version of simdjson.h. So apply the fix to both the individual
header and the amalgamated version.

PR:		280590
Approved by:	olevole@olevole.ru (maintainer)
MFH:		2024Q3
This commit is contained in:
Dimitry Andric 2024-08-03 15:58:40 +02:00
parent 6bf6ee1936
commit 8c86705f8b
3 changed files with 43 additions and 0 deletions

View File

@ -1,6 +1,7 @@
PORTNAME= simdjson
DISTVERSIONPREFIX= v
DISTVERSION= 3.6.2
PORTREVISION= 1
CATEGORIES= devel
MAINTAINER= olevole@olevole.ru

View File

@ -0,0 +1,21 @@
--- include/simdjson/dom/serialization.h.orig 2023-12-01 18:56:12 UTC
+++ include/simdjson/dom/serialization.h
@@ -57,15 +57,15 @@ class base_formatter { (public)
simdjson_inline void one_char(char c);
simdjson_inline void call_print_newline() {
- this->print_newline();
+ static_cast<formatter*>(this)->print_newline();
}
simdjson_inline void call_print_indents(size_t depth) {
- this->print_indents(depth);
+ static_cast<formatter*>(this)->print_indents(depth);
}
simdjson_inline void call_print_space() {
- this->print_space();
+ static_cast<formatter*>(this)->print_space();
}
protected:

View File

@ -0,0 +1,21 @@
--- singleheader/simdjson.h.orig 2023-12-01 18:56:12 UTC
+++ singleheader/simdjson.h
@@ -6153,15 +6153,15 @@ class base_formatter { (public)
simdjson_inline void one_char(char c);
simdjson_inline void call_print_newline() {
- this->print_newline();
+ static_cast<formatter*>(this)->print_newline();
}
simdjson_inline void call_print_indents(size_t depth) {
- this->print_indents(depth);
+ static_cast<formatter*>(this)->print_indents(depth);
}
simdjson_inline void call_print_space() {
- this->print_space();
+ static_cast<formatter*>(this)->print_space();
}
protected: