Date: Sun, 15 Sep 2024 12:08:23 GMT From: Gleb Popov <arrowd@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org Subject: git: 1168d8b84975 - 2024Q3 - math/z3: fix build with clang 19 Message-ID: <202409151208.48FC8NKV044458@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch 2024Q3 has been updated by arrowd: URL: https://cgit.FreeBSD.org/ports/commit/?id=1168d8b84975a1fde55bd7f25a97970268542a73 commit 1168d8b84975a1fde55bd7f25a97970268542a73 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-09-15 11:53:50 +0000 Commit: Gleb Popov <arrowd@FreeBSD.org> CommitDate: 2024-09-15 12:08:13 +0000 math/z3: fix build with clang 19 Clang 19 has become more strict about errors in member functions, which results in: /wrkdirs/usr/ports/math/z3/work/z3-z3-4.13.0/src/math/lp/static_matrix.h:82:72: error: no member named 'get' in 'static_matrix<T, X>'; did you mean 'set'? 82 | ref operator=(ref & v) { m_matrix.set(m_row, m_col, v.m_matrix.get(v.m_row, v.m_col)); return *this; } | ^~~ | set /wrkdirs/usr/ports/math/z3/work/z3-z3-4.13.0/src/math/lp/static_matrix.h:164:10: note: 'set' declared here 164 | void set(unsigned row, unsigned col, T const & val); | ^ Upstream fixed this as part of a few other changes for gcc 15 in <https://github.com/Z3Prover/z3/commit/2ce89e5f4>, but it does not apply cleanly to this version, so add a backported patch. PR: 281512 MFH: 2024Q3 (cherry picked from commit 88af7aa2d01a15a3d77380bf590921e04996ef45) --- math/z3/files/patch-backport-2ce89e5f4 | 125 +++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/math/z3/files/patch-backport-2ce89e5f4 b/math/z3/files/patch-backport-2ce89e5f4 new file mode 100644 index 000000000000..07161f1d64ed --- /dev/null +++ b/math/z3/files/patch-backport-2ce89e5f4 @@ -0,0 +1,125 @@ +From 2ce89e5f491fa817d02d8fdce8c62798beab258b Mon Sep 17 00:00:00 2001 +From: David Seifert <16636962+SoapGentoo@users.noreply.github.com> +Date: Mon, 29 Jul 2024 20:07:10 +0200 +Subject: [PATCH] Gcc 15 two phase (#7313) + +* Fix `-Wclass-memaccess` + +* Fix for GCC 15 two-phase lookup + +* GCC 15 is more aggressive about checking dependent names: + https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=r15-2117-g313afcfdabeab3 + +Bug: https://bugs.gentoo.org/936634 +--- + src/math/lp/lp_settings.h | 69 ++++++++++++++++----------------- + src/math/lp/static_matrix.h | 2 +- + src/math/lp/static_matrix_def.h | 2 +- + 3 files changed, 36 insertions(+), 37 deletions(-) + +diff --git src/math/lp/lp_settings.h src/math/lp/lp_settings.h +index d1a4be21c64..0d47877c76b 100644 +--- src/math/lp/lp_settings.h ++++ src/math/lp/lp_settings.h +--- src/math/lp/lp_settings.h.orig 2024-03-07 18:25:16 UTC ++++ src/math/lp/lp_settings.h +@@ -97,39 +97,39 @@ struct statistics { + }; + + struct statistics { +- unsigned m_make_feasible; +- unsigned m_total_iterations; +- unsigned m_iters_with_no_cost_growing; +- unsigned m_num_factorizations; +- unsigned m_num_of_implied_bounds; +- unsigned m_need_to_solve_inf; +- unsigned m_max_cols; +- unsigned m_max_rows; +- unsigned m_gcd_calls; +- unsigned m_gcd_conflicts; +- unsigned m_cube_calls; +- unsigned m_cube_success; +- unsigned m_patches; +- unsigned m_patches_success; +- unsigned m_hnf_cutter_calls; +- unsigned m_hnf_cuts; +- unsigned m_nla_calls; +- unsigned m_gomory_cuts; +- unsigned m_nla_add_bounds; +- unsigned m_nla_propagate_bounds; +- unsigned m_nla_propagate_eq; +- unsigned m_nla_lemmas; +- unsigned m_nra_calls; +- unsigned m_nla_bounds_improvements; +- unsigned m_horner_calls; +- unsigned m_horner_conflicts; +- unsigned m_cross_nested_forms; +- unsigned m_grobner_calls; +- unsigned m_grobner_conflicts; +- unsigned m_offset_eqs; +- unsigned m_fixed_eqs; ++ unsigned m_make_feasible = 0; ++ unsigned m_total_iterations = 0; ++ unsigned m_iters_with_no_cost_growing = 0; ++ unsigned m_num_factorizations = 0; ++ unsigned m_num_of_implied_bounds = 0; ++ unsigned m_need_to_solve_inf = 0; ++ unsigned m_max_cols = 0; ++ unsigned m_max_rows = 0; ++ unsigned m_gcd_calls = 0; ++ unsigned m_gcd_conflicts = 0; ++ unsigned m_cube_calls = 0; ++ unsigned m_cube_success = 0; ++ unsigned m_patches = 0; ++ unsigned m_patches_success = 0; ++ unsigned m_hnf_cutter_calls = 0; ++ unsigned m_hnf_cuts = 0; ++ unsigned m_nla_calls = 0; ++ unsigned m_gomory_cuts = 0; ++ unsigned m_nla_add_bounds = 0; ++ unsigned m_nla_propagate_bounds = 0; ++ unsigned m_nla_propagate_eq = 0; ++ unsigned m_nla_lemmas = 0; ++ unsigned m_nra_calls = 0; ++ unsigned m_nla_bounds_improvements = 0; ++ unsigned m_horner_calls = 0; ++ unsigned m_horner_conflicts = 0; ++ unsigned m_cross_nested_forms = 0; ++ unsigned m_grobner_calls = 0; ++ unsigned m_grobner_conflicts = 0; ++ unsigned m_offset_eqs = 0; ++ unsigned m_fixed_eqs = 0; + statistics() { reset(); } +- void reset() { memset(this, 0, sizeof(*this)); } ++ void reset() { *this = statistics{}; } + void collect_statistics(::statistics& st) const { + st.update("arith-factorizations", m_num_factorizations); + st.update("arith-make-feasible", m_make_feasible); +diff --git src/math/lp/static_matrix.h src/math/lp/static_matrix.h +index 9d6bb859964..42dd476b5d4 100644 +--- src/math/lp/static_matrix.h ++++ src/math/lp/static_matrix.h +@@ -79,7 +79,7 @@ class static_matrix (public) + ref(static_matrix & m, unsigned row, unsigned col):m_matrix(m), m_row(row), m_col(col) {} + ref & operator=(T const & v) { m_matrix.set( m_row, m_col, v); return *this; } + +- ref operator=(ref & v) { m_matrix.set(m_row, m_col, v.m_matrix.get(v.m_row, v.m_col)); return *this; } ++ ref operator=(ref & v) { m_matrix.set(m_row, m_col, v.m_matrix.get_elem(v.m_row, v.m_col)); return *this; } + + operator T () const { return m_matrix.get_elem(m_row, m_col); } + }; +diff --git src/math/lp/static_matrix_def.h src/math/lp/static_matrix_def.h +index 0370ee8990a..c3b2fc16821 100644 +--- src/math/lp/static_matrix_def.h ++++ src/math/lp/static_matrix_def.h +--- src/math/lp/static_matrix_def.h.orig 2024-03-07 18:25:16 UTC ++++ src/math/lp/static_matrix_def.h +@@ -92,7 +92,7 @@ static_matrix<T, X>::static_matrix(static_matrix const + init_row_columns(m, m); + for (; m-- > 0; ) + for (auto & col : A.m_columns[m]) +- set(col.var(), m, A.get_value_of_column_cell(col)); ++ set(col.var(), m, A.get_column_cell(col)); + } + + template <typename T, typename X> void static_matrix<T, X>::clear() {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202409151208.48FC8NKV044458>