diff --git a/tools/qfcc/test/vecaddr.r b/tools/qfcc/test/vecaddr.r index 323d9205c..6bd407d9b 100644 --- a/tools/qfcc/test/vecaddr.r +++ b/tools/qfcc/test/vecaddr.r @@ -1,8 +1,25 @@ void printf (string fmt, ...) = #0; -float foo (vector v, float z) +#if __RUAMOKO__ > 1 +#define dot @dot +#define X .y +#else +#define dot * +#define X +#endif + +void forcelive (float z) { - return v * *(vector*)(&v.y); +} + +float foo (vector _v, float _z) +{ + vector v = _v; + float z = _z; + _v = nil; + _z = _z - _z; + forcelive (z); + return (v dot *(vector*)(&v.y))X; } int @@ -11,6 +28,6 @@ main (int argc, string *argv) vector v = [1, 2, 3]; vector w = [2, 3, 4]; float f; - printf ("%v %g %g %g\n", v, v*v, v*w, f=foo (v, 4)); - return f != v*w; + printf ("%v %g %g %g\n", v, v dot v, v dot w, f=foo (v, 4)); + return f != (v dot w)X; }