Source: eclib
Severity: minor
Tags: patch
User: [email protected]
Usertags: clang-ftbfs
Hello,
Using the rebuild infrastructure, your package fails to build with clang
(instead of gcc).
We detected this kinf of error:
http://clang.debian.net/status.php?version=3.4.2&key=WRONG_DEFAULT_DECLARATION
Full build log is available here:
http://clang.debian.net/logs/2014-06-16/eclib_2014-05-14a-1_unstable_clang.log
Thanks,
Alexander
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--- ./libsrc/eclib/smat.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/smat.h 2014-07-18 23:17:45.091537570 +0400
@@ -79,7 +79,7 @@
friend smat transpose(const smat&);
friend int operator==(const smat&, const smat&);
// Equality mod p:
- friend int eqmodp(const smat&, const smat&, const scalar& p=DEFAULT_MODULUS);
+ friend int eqmodp(const smat&, const smat&, const scalar& p);
friend ostream& operator<< (ostream&s, const smat&);
friend istream& operator>> (istream&s, smat&);
friend int get_population (const smat& ); //mainly used for testing
@@ -87,7 +87,7 @@
{return (((double)(get_population(m)))/m.nro)/m.nco;}
friend void random_fill_in( smat&, int, scalar ); //the elimination program
friend smat sidmat(scalar); // identity matrix
- friend int liftmat(const smat& mm, scalar pr, smat& m, scalar& dd, int trace=0);
+ friend int liftmat(const smat& mm, scalar pr, smat& m, scalar& dd, int trace);
friend int liftmats_chinese(const smat& mm1, scalar pr1, const smat& mm2, scalar pr2,
smat& m, scalar& dd);
};
--- ./libsrc/eclib/mat.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/mat.h 2014-07-18 23:06:11.831218778 +0400
@@ -103,8 +103,8 @@
long& rk, long& ny, scalar pr);
friend subspace combine(const subspace& s1, const subspace& s2);
friend mat restrict_mat(const mat& m, const subspace& s, int cr);
- friend int liftmat(const mat& mm, scalar pr, mat& m, scalar& dd, int trace=0);
- friend int lift(const subspace& s, scalar pr, subspace& ans, int trace=0);
+ friend int liftmat(const mat& mm, scalar pr, mat& m, scalar& dd, int trace);
+ friend int lift(const subspace& s, scalar pr, subspace& ans, int trace);
friend subspace pcombine(const subspace& s1, const subspace& s2, scalar pr);
friend mat prestrict(const mat& m, const subspace& s, scalar pr, int cr);
friend mat matmulmodp(const mat&, const mat&, scalar pr);
--- ./libsrc/eclib/p2points.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/p2points.h 2014-07-18 23:40:42.811985774 +0400
@@ -100,15 +100,15 @@
{ X=Q.X ; Y=Q.Y; Z=Q.Z; }
// Coordinate transforms useful for elliptic curve points
- friend P2Point scale(const P2Point& P, const bigint& u, int back=0);
- friend P2Point scale(const P2Point& P, long u=1, int back=0);
+ friend P2Point scale(const P2Point& P, const bigint& u, int back);
+ friend P2Point scale(const P2Point& P, long u, int back);
friend P2Point shift(const P2Point& P,
const bigint& r, const bigint& s, const bigint& t,
- int back=0);
+ int back);
friend P2Point transform(const P2Point& P,
const bigint& u,
const bigint& r, const bigint& s, const bigint& t,
- int back=0);
+ int back);
void getcoordinates(bigint& x, bigint& y, bigint& z) const
{x=X; y=Y; z=Z; }
--- ./libsrc/eclib/mmatrix.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/mmatrix.h 2014-07-18 23:12:04.429019137 +0400
@@ -84,7 +84,7 @@
long& rk, long& ny, const bigint& pr);
friend msubspace combine(const msubspace& s1, const msubspace& s2);
friend mat_m restrict_mat(const mat_m& m, const msubspace& s);
- friend msubspace lift(const msubspace& s, const bigint& pr, int =0);
+ friend msubspace lift(const msubspace& s, const bigint& pr, int);
friend msubspace pcombine(const msubspace& s1, const msubspace& s2, const bigint& pr);
friend mat_m prestrict(const mat_m& m, const msubspace& s, const bigint& pr);
friend mat_m matmulmodp(const mat_m&, const mat_m&, const bigint& pr);
--- ./libsrc/eclib/points.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/points.h 2014-07-18 23:54:18.512144291 +0400
@@ -109,7 +109,7 @@
friend Point transform(const Point& p, Curvedata* newc,
const bigint& u,
const bigint& r, const bigint& s, const bigint& t,
- int back=0);
+ int back);
void operator+=(const Point&) ; // P1 += P2 ; order and height unknown
void operator-=(const Point&) ; // P1 -= P2 ; ditto
--- ./libsrc/eclib/svec.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/svec.h 2014-07-18 23:14:12.811891564 +0400
@@ -83,7 +83,7 @@
friend inline int dim(const svec& v) {return v.d;}
// Equality mod p:
- friend int eqmodp(const svec&, const svec&, const scalar& p=DEFAULT_MODULUS);
+ friend int eqmodp(const svec&, const svec&, const scalar& p);
friend ostream& operator<< (ostream&s, const svec&);
friend scalar operator*(const svec&, const svec&); //dot product
friend scalar operator*(const svec&, const vec&);
--- ./libsrc/eclib/vec.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/vec.h 2014-07-18 23:03:50.329706975 +0400
@@ -78,9 +78,9 @@
friend scalar vecgcd(const vec&);
friend void swapvec(vec& v, vec& w);
friend int member(scalar a, const vec& v);//tests if a=v[i] for some i
- friend mat restrict_mat(const mat& m, const subspace& s, int cr=0);
+ friend mat restrict_mat(const mat& m, const subspace& s, int cr);
friend mat_m restrict_mat(const mat_m& m, const msubspace& s);
- friend mat prestrict(const mat& m, const subspace& s, scalar pr, int cr=0);
+ friend mat prestrict(const mat& m, const subspace& s, scalar pr, int cr);
friend mat_m prestrict(const mat_m& m, const msubspace& s, const bigint& pr);
// Implementation
--- ./libsrc/eclib/method.h 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/eclib/method.h 2014-07-18 23:35:51.897711841 +0400
@@ -83,7 +83,7 @@
#define EIGENSPACE(a,b) peigenspace(a,b,MODULUS)
#define SUBEIGENSPACE(a,b,c) psubeigenspace(a,b,c,MODULUS)
#define COMBINE(a,b) pcombine(a,b,MODULUS)
-#define RESTRICT(a,b) prestrict(a,b,MODULUS)
+#define RESTRICT(a,b) prestrict(a,b,MODULUS, 0)
#else
#define EIGENSPACE(a,b) eigenspace(a,b)
#define SUBEIGENSPACE(a,b,c) subeigenspace(a,b,c)
--- ./libsrc/svec.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/svec.cc 2014-07-18 23:18:06.815093946 +0400
@@ -508,7 +508,7 @@
// Definitions of non-member, friend operators and functions
-int eqmodp(const svec& v1, const svec& v2, const scalar& p)
+int eqmodp(const svec& v1, const svec& v2, const scalar& p=DEFAULT_MODULUS)
{
if(v1.d!=v2.d) return 0;
map<int,scalar>::const_iterator vi;
--- ./libsrc/mrank2.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/mrank2.cc 2014-07-18 23:54:44.827637615 +0400
@@ -1096,7 +1096,7 @@
for(i=0; i<npoints; i++)
{
if(verbose&&(i==npoints1)) {cout<<"\nII. Points on phi(E') mod 2E\n";}
- Point q = transform(pointlist[i],the_curve,u,r,s,t);
+ Point q = transform(pointlist[i],the_curve,u,r,s,t,0);
bigfloat h = height(q);
int valid = q.isvalid();
if(verbose||!valid) cout << "Point " << q << ", height = " << h;
--- ./libsrc/qc.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/qc.cc 2014-07-18 23:55:27.706811892 +0400
@@ -84,7 +84,7 @@
if(verbose) cout<<"\n";
#endif
- P = transform(oldP, E, tr_u, tr_r, tr_s, tr_t);
+ P = transform(oldP, E, tr_u, tr_r, tr_s, tr_t,0);
valid = P.isvalid();
if(verbose||!valid) cout<<"Point = "<<P;
--- ./libsrc/homspace.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/homspace.cc 2014-07-19 00:02:01.467252411 +0400
@@ -287,7 +287,7 @@
int d1;
start_time();
smat sp;
- int ok = liftmat(sme.kernel(npivs,pivs),MODULUS,sp,d1);
+ int ok = liftmat(sme.kernel(npivs,pivs),MODULUS,sp,d1,0);
stop_time();
if (!ok)
cout << "**!!!** failed to lift modular kernel of relation matrix\n" << endl;
@@ -415,7 +415,7 @@
vec pivs, npivs;
int d2;
smat sk;
- int ok = liftmat(smat_elim(deltamat).kernel(npivs,pivs),MODULUS,sk,d2);
+ int ok = liftmat(smat_elim(deltamat).kernel(npivs,pivs),MODULUS,sk,d2,0);
if (!ok)
cout << "**!!!** failed to lift modular kernel of delta matrix\n" << endl;
denom2=d2;
--- ./libsrc/xsplit.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/xsplit.cc 2014-07-18 23:34:45.603023144 +0400
@@ -554,7 +554,7 @@
smat left = sm*sb;
if(dd!=1) {cout<<"(dd="<<dd<<")"; left.mult_by_scalar_mod_p(dd);}
smat right = sb*ans;
- int ok = eqmodp(left,right);
+ int ok = eqmodp(left,right, DEFAULT_MODULUS);
if (!ok)
{
cout<<"Warning from sparse_restrict: subspace not invariant!\n";
--- ./libsrc/sub.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./libsrc/sub.cc 2014-07-18 23:11:07.718016485 +0400
@@ -77,7 +77,7 @@
}
//This one is used a LOT
-mat restrict_mat(const mat& m, const subspace& s, int cr)
+mat restrict_mat(const mat& m, const subspace& s, int cr = 0)
{ long i,j,k,d = dim(s), n=m.nro;
if(d==n) return m; // trivial special case, s is whole space
scalar dd = s.denom;
@@ -166,7 +166,7 @@
return subspace(b,p,d);
}
-mat prestrict(const mat& m, const subspace& s, scalar pr, int cr)
+mat prestrict(const mat& m, const subspace& s, scalar pr, int cr = 0)
{ int i,j,k,d = dim(s), n=m.nro;
if(d==n) return m; // trivial special case, s is whole space
scalar dd = s.denom; // will be 1 if s is a mod-p subspace
--- ./tests/mspace.cc 2014-05-15 15:12:49.000000000 +0400
+++ ../eclib-2014-05-14a-my/./tests/mspace.cc 2014-07-19 00:06:51.525709711 +0400
@@ -78,7 +78,7 @@
cout << "eigenspace for lambda = " << lambda << " has basis\n" << basis(elambda);
cout << "with dimension " << dim(elambda) << endl;
cout << "\nNow repeating eigenspace calculation modulo " << MBIGPRIME << endl;
- msubspace elp = lift(peigenspace(m,lambda,MBIGPRIME),MBIGPRIME);
+ msubspace elp = lift(peigenspace(m,lambda,MBIGPRIME),MBIGPRIME, 0);
cout << "eigenspace for lambda has basis\n" << basis(elp);
cout << "with dimension " << dim(elp) << endl;
}