Backported upstream patch. Added extra one for clang64. Added clang32 where this was tested. Signed-off-by: Rosen Penev <rosenp@gmail.com>
118 lines
4.1 KiB
Diff
118 lines
4.1 KiB
Diff
--- a/ode/demo/demo_basket.cpp
|
|
+++ b/ode/demo/demo_basket.cpp
|
|
@@ -159,8 +159,12 @@ static void simLoop (int pause)
|
|
dsSetColor (1,1,1);
|
|
const dReal *SPos = dBodyGetPosition(sphbody);
|
|
const dReal *SRot = dBodyGetRotation(sphbody);
|
|
- float spos[3] = {SPos[0], SPos[1], SPos[2]};
|
|
- float srot[12] = { SRot[0], SRot[1], SRot[2], SRot[3], SRot[4], SRot[5], SRot[6], SRot[7], SRot[8], SRot[9], SRot[10], SRot[11] };
|
|
+ float spos[3];
|
|
+ for (size_t i = 0; i < sizeof(spos); ++i)
|
|
+ spos[i] = SPos[i];
|
|
+ float srot[12];
|
|
+ for (size_t i = 0; i < sizeof(srot); ++i)
|
|
+ srot[i] = SRot[i];
|
|
dsDrawSphere
|
|
(
|
|
spos,
|
|
@@ -174,11 +178,14 @@ static void simLoop (int pause)
|
|
|
|
const dReal* Pos = dGeomGetPosition(world_mesh);
|
|
//dIASSERT(dVALIDVEC3(Pos));
|
|
- float pos[3] = { Pos[0], Pos[1], Pos[2] };
|
|
-
|
|
+ float pos[3];
|
|
+ for (size_t i = 0; i < sizeof(pos); ++i)
|
|
+ pos[i] = Pos[i];
|
|
const dReal* Rot = dGeomGetRotation(world_mesh);
|
|
//dIASSERT(dVALIDMAT3(Rot));
|
|
- float rot[12] = { Rot[0], Rot[1], Rot[2], Rot[3], Rot[4], Rot[5], Rot[6], Rot[7], Rot[8], Rot[9], Rot[10], Rot[11] };
|
|
+ float rot[12];
|
|
+ for (size_t i = 0; i < sizeof(rot); ++i)
|
|
+ rot[i] = Rot[i];
|
|
|
|
int numi = sizeof(world_indices) / sizeof(dTriIndex);
|
|
|
|
--- a/ode/demo/demo_cyl.cpp
|
|
+++ b/ode/demo/demo_cyl.cpp
|
|
@@ -171,8 +171,13 @@ static void simLoop (int pause)
|
|
#ifdef BOX
|
|
const dReal *BPos = dBodyGetPosition(boxbody);
|
|
const dReal *BRot = dBodyGetRotation(boxbody);
|
|
- float bpos[3] = {BPos[0], BPos[1], BPos[2]};
|
|
- float brot[12] = { BRot[0], BRot[1], BRot[2], BRot[3], BRot[4], BRot[5], BRot[6], BRot[7], BRot[8], BRot[9], BRot[10], BRot[11] };
|
|
+ float bpos[3];
|
|
+ for (size_t i = 0; i < sizeof(bpos); ++i)
|
|
+ bpos[i] = BPos[i];
|
|
+ float brot[12];
|
|
+ for (size_t i = 0; i < sizeof(brot); ++i)
|
|
+ brot[i] = BRot[i];
|
|
+
|
|
float sides[3] = {BOXSZ, BOXSZ, BOXSZ};
|
|
dsDrawBox
|
|
(
|
|
@@ -184,8 +189,12 @@ static void simLoop (int pause)
|
|
#ifdef CYL
|
|
const dReal *CPos = dGeomGetPosition(cylgeom);
|
|
const dReal *CRot = dGeomGetRotation(cylgeom);
|
|
- float cpos[3] = {CPos[0], CPos[1], CPos[2]};
|
|
- float crot[12] = { CRot[0], CRot[1], CRot[2], CRot[3], CRot[4], CRot[5], CRot[6], CRot[7], CRot[8], CRot[9], CRot[10], CRot[11] };
|
|
+ float cpos[3];
|
|
+ for (size_t i = 0; i < sizeof(cpos); ++i)
|
|
+ cpos[i] = CPos[i];
|
|
+ float crot[12];
|
|
+ for (size_t i = 0; i < sizeof(crot); ++i)
|
|
+ crot[i] = CRot[i];
|
|
dsDrawCylinder
|
|
(
|
|
// dBodyGetPosition(cylbody),
|
|
@@ -202,10 +211,14 @@ static void simLoop (int pause)
|
|
dsSetTexture (DS_NONE);
|
|
|
|
const dReal* Pos = dGeomGetPosition(world_mesh);
|
|
- float pos[3] = { Pos[0], Pos[1], Pos[2] };
|
|
+ float pos[3];
|
|
+ for (size_t i = 0; i < sizeof(pos); ++i)
|
|
+ pos[i] = Pos[i];
|
|
|
|
const dReal* Rot = dGeomGetRotation(world_mesh);
|
|
- float rot[12] = { Rot[0], Rot[1], Rot[2], Rot[3], Rot[4], Rot[5], Rot[6], Rot[7], Rot[8], Rot[9], Rot[10], Rot[11] };
|
|
+ float rot[12];
|
|
+ for (size_t i = 0; i < sizeof(rot); ++i)
|
|
+ rot[i] = Rot[i];
|
|
|
|
int numi = sizeof(world_indices) / sizeof(dTriIndex);
|
|
|
|
--- a/ode/demo/demo_cylvssphere.cpp
|
|
+++ b/ode/demo/demo_cylvssphere.cpp
|
|
@@ -151,8 +151,12 @@ static void simLoop (int pause)
|
|
|
|
const dReal *CPos = dBodyGetPosition(cylbody);
|
|
const dReal *CRot = dBodyGetRotation(cylbody);
|
|
- float cpos[3] = {CPos[0], CPos[1], CPos[2]};
|
|
- float crot[12] = { CRot[0], CRot[1], CRot[2], CRot[3], CRot[4], CRot[5], CRot[6], CRot[7], CRot[8], CRot[9], CRot[10], CRot[11] };
|
|
+ float cpos[3];
|
|
+ for (size_t i = 0; i < sizeof(cpos); ++i)
|
|
+ cpos[i] = CPos[i];
|
|
+ float crot[12];
|
|
+ for (size_t i = 0; i < sizeof(crot); ++i)
|
|
+ crot[i] = CRot[i];
|
|
dsDrawCylinder
|
|
(
|
|
cpos,
|
|
@@ -163,8 +167,12 @@ static void simLoop (int pause)
|
|
|
|
const dReal *SPos = dBodyGetPosition(sphbody);
|
|
const dReal *SRot = dBodyGetRotation(sphbody);
|
|
- float spos[3] = {SPos[0], SPos[1], SPos[2]};
|
|
- float srot[12] = { SRot[0], SRot[1], SRot[2], SRot[3], SRot[4], SRot[5], SRot[6], SRot[7], SRot[8], SRot[9], SRot[10], SRot[11] };
|
|
+ float spos[3];
|
|
+ for (size_t i = 0; i < sizeof(spos); ++i)
|
|
+ spos[i] = SPos[i];
|
|
+ float srot[12];
|
|
+ for (size_t i = 0; i < sizeof(srot); ++i)
|
|
+ srot[i] = SRot[i];
|
|
dsDrawSphere
|
|
(
|
|
spos,
|