On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote: > Sync some xlockmore files with the 5.50 release to fix build errors > with clang of the form:
Sure, ok.
I remember I had more changes to make when trying clang from ports on
xenocara during g2k16, but it may be that clang got more gcc
compatible since then.
>
> c++ -c -DHAVE_CONFIG_H
> -DDEF_FILESEARCHPATH=\"/usr/X11R6/share/X11/app-defaults/%N%C%S:/usr/X11R6/share/X11/app-defaults/%N%S\"
> -I. -I.. -I../.. -I/usr/xenocara/app/xlockmore/xlock/
> -I/usr/xenocara/app/xlockmore -I/usr/X11R6/include -I/usr/X11R6/include
> -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include -g
> -O2 /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc
> /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc:31:47: error: use of
> overloaded operator '^' is ambiguous
> (with operand types 'class TwoJet' and 'int')
> FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v),
> ~~~~~~~^~~~~
> Index: modes/glx/i_figureeight.cc
> ===================================================================
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_figureeight.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_figureeight.cc
> --- modes/glx/i_figureeight.cc 26 Nov 2006 11:08:51 -0000 1.1.1.1
> +++ modes/glx/i_figureeight.cc 2 Feb 2017 02:19:08 -0000
> @@ -28,7 +28,7 @@ TwoJetVec AddFigureEight(ThreeJetVec p,
> TwoJetVec w = Normalize(Cross(h, du))*(TwoJet(size)*1.1);
> return RotateZ(
> TwoJetVec(p) +
> - FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v),
> + FigureEight(w, h, du*D(size, 0)*(D(u, 0)^((double)-1)), form, v),
> v*(1./n_strips)
> );
> }
> Index: modes/glx/i_sphere.cc
> ===================================================================
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_sphere.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_sphere.cc
> --- modes/glx/i_sphere.cc 26 Nov 2006 11:08:51 -0000 1.1.1.1
> +++ modes/glx/i_sphere.cc 2 Feb 2017 02:21:33 -0000
> @@ -28,16 +28,16 @@ ThreeJet Param1(ThreeJet x) {
> double offset = 0;
> x %= 4;
> if (x > 2) { x = x+(-2); offset = 2; }
> - if (x <= 1) return x*2 + (x^2)*(-1) + offset;
> - else return (x^2) + x*(-2) + (2 + offset);
> + if (x <= 1) return x*2 + (x^(double)2)*(-1) + offset;
> + else return (x^(double)2) + x*(-2) + (2 + offset);
> }
>
> ThreeJet Param2(ThreeJet x) {
> double offset = 0;
> x %= 4;
> if (x > 2) { x = x+(-2); offset = 2; }
> - if (x <= 1) return (x^2) + offset;
> - else return (x^2)*(-1) + x*4 + (-2 + offset);
> + if (x <= 1) return (x^(double)2) + offset;
> + else return (x^(double)2)*(-1) + x*4 + (-2 + offset);
> }
>
> static inline ThreeJet TInterp(double x) {
> @@ -48,7 +48,7 @@ ThreeJet UInterp(ThreeJet x) {
> x %= 2;
> if (x > 1)
> x = x*(-1) + 2;
> - return (x^2)*3 + (x^3) * (-2);
> + return (x^(double)2)*3 + (x^(double)3) * (-2);
> }
>
> #define FFPOW 3
> @@ -59,7 +59,7 @@ ThreeJet FFInterp(ThreeJet x) {
> x = x*1.06 + -0.05;
> if (x < 0) return ThreeJet(0, 0, 0);
> else if (x > 1) return ThreeJet(0, 0, 0) + 1;
> - else return (x ^ (FFPOW-1)) * (FFPOW) + (x^FFPOW) * (-FFPOW+1);
> + else return (x ^ (double)(FFPOW-1)) * (FFPOW) + (x^(double)FFPOW) *
> (-FFPOW+1);
> }
>
> #define FSPOW 3
> @@ -67,7 +67,7 @@ ThreeJet FSInterp(ThreeJet x) {
> x %= 2;
> if (x > 1)
> x = x*(-1) + 2;
> - return ((x ^ (FSPOW-1)) * (FSPOW) + (x^FSPOW) * (-FSPOW+1)) * (-0.2);
> + return ((x ^ (double)(FSPOW-1)) * (FSPOW) + (x^(double)FSPOW) *
> (-FSPOW+1)) * (-0.2);
> }
>
> ThreeJetVec Stage0(ThreeJet u, ThreeJet v) {
> Index: modes/glx/i_threejetvec.cc
> ===================================================================
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_threejetvec.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_threejetvec.cc
> --- modes/glx/i_threejetvec.cc 26 Nov 2006 11:08:51 -0000 1.1.1.1
> +++ modes/glx/i_threejetvec.cc 2 Feb 2017 02:23:09 -0000
> @@ -63,10 +63,10 @@ ThreeJetVec Normalize(ThreeJetVec v) {
>
> ThreeJetVec RotateZ(ThreeJetVec v, ThreeJet angle) {
> ThreeJetVec result;
> - ThreeJet s,c;
> + ThreeJet s, c;
> s = Sin (angle);
> c = Cos (angle);
> - result.x = v.x*c + v.y*s;
> + result.x = v.x*c + v.y*s;
> result.y = v.x*s*-1 + v.y*c;
> result.z = v.z;
> return result;
> @@ -79,13 +79,13 @@ ThreeJetVec RotateY(ThreeJetVec v, Three
> c = Cos (angle);
> result.x = v.x*c + v.z*s*-1;
> result.y = v.y;
> - result.z = v.x*s + v.z*c ;
> + result.z = v.x*s + v.z*c;
> return result;
> }
>
> ThreeJetVec RotateX(ThreeJetVec v, ThreeJet angle) {
> ThreeJetVec result;
> - ThreeJet s,c;
> + ThreeJet s, c;
> s = Sin (angle);
> c = Cos (angle);
> result.x = v.x;
> @@ -100,5 +100,5 @@ ThreeJetVec InterpolateVec(ThreeJetVec v
>
> ThreeJet Length(ThreeJetVec v)
> {
> - return (v.x^2 + v.y^2) ^ (.5);
> + return (v.x * v.x + v.y * v.y) ^ (.5);
> }
> Index: modes/glx/i_twojetvec.cc
> ===================================================================
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_twojetvec.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_twojetvec.cc
> --- modes/glx/i_twojetvec.cc 26 Nov 2006 11:08:51 -0000 1.1.1.1
> +++ modes/glx/i_twojetvec.cc 2 Feb 2017 02:23:57 -0000
> @@ -55,10 +55,10 @@ TwoJetVec Normalize(TwoJetVec v) {
>
> TwoJetVec RotateZ(TwoJetVec v, TwoJet angle) {
> TwoJetVec result;
> - TwoJet s,c;
> + TwoJet s, c;
> s = Sin (angle);
> c = Cos (angle);
> - result.x = v.x*c + v.y*s;
> + result.x = v.x*c + v.y*s;
> result.y = v.x*s*-1 + v.y*c;
> result.z = v.z;
> return result;
> @@ -71,13 +71,13 @@ TwoJetVec RotateY(TwoJetVec v, TwoJet an
> c = Cos (angle);
> result.x = v.x*c + v.z*s*-1;
> result.y = v.y;
> - result.z = v.x*s + v.z*c ;
> + result.z = v.x*s + v.z*c;
> return result;
> }
>
> TwoJetVec RotateX(TwoJetVec v, TwoJet angle) {
> TwoJetVec result;
> - TwoJet s,c;
> + TwoJet s, c;
> s = Sin (angle);
> c = Cos (angle);
> result.x = v.x;
> @@ -92,5 +92,5 @@ TwoJetVec InterpolateVec(TwoJetVec v1, T
>
> TwoJet Length(TwoJetVec v)
> {
> - return (v.x^2 + v.y^2) ^ (.5);
> + return (v.x * v.x + v.y * v.y) ^ (.5);
> }
--
Matthieu Herrb
signature.asc
Description: PGP signature
