Skip to content

Commit c2c079c

Browse files
authored
fix clang error (#85)
* Update ci.yml * use vector * more clang fixes * fix
1 parent a79b13b commit c2c079c

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
run: |
2626
mkdir -p build
2727
cd build
28-
cmake -DCMAKE_BUILD_TYPE=${{ matrix.mode }} ..
28+
${{ matrix.env }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.mode }} ..
2929
make
3030
3131
- name: Check

src/polyxx/polynomial.cpp

+8-6
Original file line numberDiff line numberDiff line change
@@ -377,29 +377,31 @@ namespace poly {
377377

378378
std::vector<Polynomial> psc(const Polynomial& p, const Polynomial& q) {
379379
std::size_t size = std::min(degree(p), degree(q)) + 1;
380-
lp_polynomial_t* tmp[size];
380+
std::vector<lp_polynomial_t*> tmp;
381381
for (std::size_t i = 0; i < size; ++i) {
382-
tmp[i] = lp_polynomial_new(detail::context(p, q));
382+
tmp.push_back(lp_polynomial_new(detail::context(p, q)));
383383
}
384-
lp_polynomial_psc(tmp, p.get_internal(), q.get_internal());
384+
lp_polynomial_psc(tmp.data(), p.get_internal(), q.get_internal());
385385
std::vector<Polynomial> res;
386386
for (std::size_t i = 0; i < size; ++i) {
387387
res.emplace_back(tmp[i]);
388388
}
389+
tmp.clear();
389390
return res;
390391
}
391392

392393
std::vector<Polynomial> subres(const Polynomial& p, const Polynomial& q) {
393394
std::size_t size = std::min(degree(p), degree(q)) + 1;
394-
lp_polynomial_t* tmp[size];
395+
std::vector<lp_polynomial_t*> tmp;
395396
for (std::size_t i = 0; i < size; ++i) {
396-
tmp[i] = lp_polynomial_new(detail::context(p, q));
397+
tmp.push_back(lp_polynomial_new(detail::context(p, q)));
397398
}
398-
lp_polynomial_subres(tmp, p.get_internal(), q.get_internal());
399+
lp_polynomial_subres(tmp.data(), p.get_internal(), q.get_internal());
399400
std::vector<Polynomial> res;
400401
for (std::size_t i = 0; i < size; ++i) {
401402
res.emplace_back(tmp[i]);
402403
}
404+
tmp.clear();
403405
return res;
404406
}
405407

src/polyxx/upolynomial.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,19 @@ namespace poly {
100100
}
101101

102102
std::vector<Integer> coefficients(const UPolynomial& p) {
103-
lp_integer_t coeffs[degree(p) + 1];
103+
std::vector<lp_integer_t> coeffs;
104+
lp_integer_t tmp;
104105
for (std::size_t i = 0; i < degree(p) + 1; ++i) {
105-
lp_integer_construct_from_int(lp_Z, &coeffs[i], 0);
106+
lp_integer_construct_from_int(lp_Z, &tmp, 0);
107+
coeffs.push_back(tmp);
106108
}
107-
lp_upolynomial_unpack(p.get_internal(), coeffs);
109+
lp_upolynomial_unpack(p.get_internal(), coeffs.data());
108110
std::vector<Integer> res;
109111
for (std::size_t i = 0; i < degree(p) + 1; ++i) {
110112
res.emplace_back(&coeffs[i]);
111113
lp_integer_destruct(&coeffs[i]);
112114
}
115+
coeffs.clear();
113116
return res;
114117
}
115118

0 commit comments

Comments
 (0)