Skip to content

Cater for 32bit architecture where size_t is unsigned int.

Markus Blatt requested to merge bugfix/fix-32bit-issues into master

Using long unsigned int breaks compilation on 32bit architectures for no reason

Compile errors fixed on 32bit are:

cd /<<PKGBUILDDIR>>/build/dune/functions/analyticfunctions/test && /usr/bin/c++ -DHAVE_CONFIG_H -DHAVE_MPI=1 -DHAVE_SUPERLU=1 -DMPICH_SKIP_MPICXX=1 -DMPIPP_H -DMPI_NO_CPPBIND=1 -DModelP -DOMPI_SKIP_MPICXX=1 -D_MPICC_H -I/<<PKGBUILDDIR>>/build -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/build/include -I/<<PKGBUILDDIR>>/build/include_private -isystem /usr/lib/arm-linux-gnueabi/mpich/include -isystem /usr/include/superlu -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIE -MD -MT dune/functions/analyticfunctions/test/CMakeFiles/polynomialtest.dir/polynomialtest.cc.o -MF CMakeFiles/polynomialtest.dir/polynomialtest.cc.o.d -o CMakeFiles/polynomialtest.dir/polynomialtest.cc.o -c /<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc: In instantiation of ‘Dune::TestSuite testDynamicPolynomial() [with Scalar = double; CoefficientArgs = {std::array<double, 4>}]’:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:221:68:   required from here
 221 |   suite.subTest(testDynamicPolynomial<double, std::array<double,4>>());
     |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: error: class template argument deduction failed:
  58 |     auto p = Polynomial(Coefficients({1, 2, 3, -4}));
     |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: error: no matching function for call to ‘Polynomial(std::array<double, 4>)’
In file included from /<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:15:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:145:3: note: candidate: ‘template<class K, class C> Polynomial(C)-> Dune::Functions::Polynomial<K, C>’
 145 |   Polynomial(Coefficients coefficients) :
     |   ^~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:145:3: note:   template argument deduction/substitution failed:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: note:   couldn’t deduce template parameter ‘K’
  58 |     auto p = Polynomial(Coefficients({1, 2, 3, -4}));
     |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:135:3: note: candidate: ‘template<class K, class C> Polynomial()-> Dune::Functions::Polynomial<K, C>’
 135 |   Polynomial() = default;
     |   ^~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:135:3: note:   candidate expects 0 arguments, 1 provided
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:121:7: note: candidate: ‘template<class K, class C> Polynomial(Dune::Functions::Polynomial<K, C>)-> Dune::Functions::Polynomial<K, C>’
 121 | class Polynomial
     |       ^~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:121:7: note:   template argument deduction/substitution failed:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: note:   ‘std::array<double, 4>’ is not derived from ‘Dune::Functions::Polynomial<K, C>’
  58 |     auto p = Polynomial(Coefficients({1, 2, 3, -4}));
     |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:207:1: note: candidate: ‘template<class K> Dune::Functions::Polynomial(std::initializer_list<_Tp>)-> Polynomial<K, std::vector<TIN> >’
 207 | Polynomial(std::initializer_list<K>) -> Polynomial<K, std::vector<K>>;
     | ^~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:207:1: note:   template argument deduction/substitution failed:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: note:   ‘std::array<double, 4>’ is not derived from ‘std::initializer_list<_Tp>’
  58 |     auto p = Polynomial(Coefficients({1, 2, 3, -4}));
     |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:204:1: note: candidate: ‘template<class K, K ...ci> Dune::Functions::Polynomial(std::integer_sequence<T, t ...>)-> Polynomial<K, std::integer_sequence<T, t ...> >’
 204 | Polynomial(std::integer_sequence<K, ci...>) -> Polynomial<K, std::integer_sequence<K,ci...>>;
     | ^~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:204:1: note:   template argument deduction/substitution failed:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: note:   ‘std::array<double, 4>’ is not derived from ‘std::integer_sequence<T, t ...>’
  58 |     auto p = Polynomial(Coefficients({1, 2, 3, -4}));
     |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:201:1: note: candidate: ‘template<class K, long unsigned int n> Dune::Functions::Polynomial(std::array<K, n>)-> Polynomial<K, std::array<K, n> >’
 201 | Polynomial(std::array<K,n>) -> Polynomial<K, std::array<K,n>>;
     | ^~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:201:1: note:   template argument deduction/substitution failed:
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:58:14: note:   mismatched types ‘long unsigned int’ and ‘unsigned int’
  58 |     auto p = Polynomial(Coefficients({1, 2, 3, -4}));
     |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/dune/functions/analyticfunctions/polynomial.hh:198:1: note: candidate: ‘template<class K> Dune::Functions::Polynomial(std::vector<TIN>)-> Polynomial<K, std::vector<TIN> >’
 198 | Polynomial(std::vector<K>) -> Polynomial<K, std::vector<K>>;
     | ^~~~~~~~~~
...
 /<<PKGBUILDDIR>>/dune/functions/analyticfunctions/test/polynomialtest.cc:184:28: error: no match for ‘operator==’ (operand types are ‘Dune::Functions::Polynomial<int, std::tuple<long unsigned int, std::integral_constant<long unsigned int, 6>, long int> >’ and ‘Dune::Functions::Polynomial<int, std::tuple<long unsigned int, std::integral_constant<unsigned int, 6>, long int> >’)
 184 |   suite.check(derivative(p)==dp);
     |

Merge request reports

Loading