void printf (string fmt, ...) = #0; #if __RUAMOKO__ > 1 #define dot @dot #define X .y #else #define dot * #define X #endif void forcelive (float z) { } float foo (vector _v, float _z) { vector v = _v; float z = _z; _v = nil; _z = 0; forcelive (_z); forcelive (z); return (v dot *(vector*)(&v.y))X; } int 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 dot v, v dot w, f=foo (v, 4)); return f != (v dot w)X; }