Skip to content

Commit 41d57f0

Browse files
committed
GCC 4.8, happy to see you're still around, causing problems.
1 parent 7bf1a0b commit 41d57f0

File tree

4 files changed

+31
-16
lines changed

4 files changed

+31
-16
lines changed

src/Magnum/Math/Test/PackingBatchTest.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,9 @@ template<class T> void PackingBatchTest::castUnsigned() {
336336
{{13, 255}, {}}
337337
};
338338

339-
constexpr Vector2 expectedFloat[] {
339+
/* GCC 4.8 doesn't like constexpr here (cannot initialize aggregate of type
340+
‘const Vector2 [3]’ with a compound literal), wtf */
341+
const Vector2 expectedFloat[] {
340342
{0.0f, 89.0f},
341343
{149.0f, 22.0f},
342344
{13.0f, 255.0f}
@@ -374,7 +376,9 @@ template<class T> void PackingBatchTest::castSigned() {
374376
{{13, 127}, {}}
375377
};
376378

377-
constexpr Vector2 expectedFloat[] {
379+
/* GCC 4.8 doesn't like constexpr here (cannot initialize aggregate of type
380+
‘const Vector2 [3]’ with a compound literal), wtf */
381+
const Vector2 expectedFloat[] {
378382
{0.0f, -89.0f},
379383
{-119.0f, 22.0f},
380384
{13.0f, 127.0f}

src/Magnum/Primitives/Implementation/Spheroid.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,17 +229,20 @@ Trade::MeshData Spheroid::finalize() {
229229

230230
auto typedVertices = reinterpret_cast<VertexTextureCoords*>(_vertexData.data());
231231
Trade::MeshAttributeData positions{Trade::MeshAttributeName::Position,
232-
Containers::stridedArrayView(_vertexData, &typedVertices[0].position,
233-
size, stride)};
232+
/* GCC 4.8 needs the arrayView() */
233+
Containers::stridedArrayView(Containers::arrayView(_vertexData),
234+
&typedVertices[0].position, size, stride)};
234235
Trade::MeshAttributeData normals{Trade::MeshAttributeName::Normal,
235-
Containers::stridedArrayView(_vertexData, &typedVertices[0].normal,
236-
size, stride)};
236+
/* GCC 4.8 needs the arrayView() */
237+
Containers::stridedArrayView(Containers::arrayView(_vertexData),
238+
&typedVertices[0].normal, size, stride)};
237239

238240
Containers::Array<Trade::MeshAttributeData> attributes;
239241
if(_textureCoords == TextureCoords::Generate) {
240242
Trade::MeshAttributeData textureCoords{Trade::MeshAttributeName::TextureCoordinates,
241-
Containers::stridedArrayView(_vertexData, &typedVertices[0].textureCoords,
242-
size, stride)};
243+
/* GCC 4.8 needs the arrayView() */
244+
Containers::stridedArrayView(Containers::arrayView(_vertexData),
245+
&typedVertices[0].textureCoords, size, stride)};
243246
attributes = Containers::Array<Trade::MeshAttributeData>{Containers::InPlaceInit, {positions, normals, textureCoords}};
244247
} else {
245248
attributes = Containers::Array<Trade::MeshAttributeData>{Containers::InPlaceInit, {positions, normals}};

src/Magnum/Trade/Test/MeshData2DTest.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ struct {
8484
{{0xff98ab_rgbf, 0xff3366_rgbf}},
8585
&State}},
8686
{"from MeshData",
87-
MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, {
87+
/* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries
88+
to use a deleted copy constructor */
89+
MeshData2D{MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, {
8890
MeshAttributeData{MeshAttributeName::Position,
8991
Containers::StridedArrayView1D<const Vector2>{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}},
9092
MeshAttributeData{MeshAttributeName::Position,
@@ -97,15 +99,17 @@ struct {
9799
Containers::StridedArrayView1D<const Vector2>{Vertices, &Vertices[0].textureCoords3, 2, sizeof(Vertex)}},
98100
MeshAttributeData{MeshAttributeName::Color,
99101
Containers::StridedArrayView1D<const Color4>{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}},
100-
}, &State},
101-
MeshData{MeshPrimitive::Lines, {}, Vertices, {
102+
}, &State}},
103+
/* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries
104+
to use a deleted copy constructor */
105+
MeshData2D{MeshData{MeshPrimitive::Lines, {}, Vertices, {
102106
MeshAttributeData{MeshAttributeName::Position,
103107
Containers::StridedArrayView1D<const Vector2>{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}},
104108
MeshAttributeData{MeshAttributeName::TextureCoordinates,
105109
Containers::StridedArrayView1D<const Vector2>{Vertices, &Vertices[0].textureCoords1, 2, sizeof(Vertex)}},
106110
MeshAttributeData{MeshAttributeName::Color,
107111
Containers::StridedArrayView1D<const Color4>{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}},
108-
}, &State}
112+
}, &State}}
109113
}
110114
};
111115
CORRADE_IGNORE_DEPRECATED_POP

src/Magnum/Trade/Test/MeshData3DTest.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ struct {
9090
{{0xff98ab_rgbf, 0xff3366_rgbf}},
9191
&State}},
9292
{"from MeshData",
93-
MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, {
93+
/* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries
94+
to use a deleted copy constructor */
95+
MeshData3D{MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, {
9496
MeshAttributeData{MeshAttributeName::Position,
9597
Containers::StridedArrayView1D<const Vector3>{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}},
9698
MeshAttributeData{MeshAttributeName::Position,
@@ -105,8 +107,10 @@ struct {
105107
Containers::StridedArrayView1D<const Vector2>{Vertices, &Vertices[0].textureCoords3, 2, sizeof(Vertex)}},
106108
MeshAttributeData{MeshAttributeName::Color,
107109
Containers::StridedArrayView1D<const Color4>{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}},
108-
}, &State},
109-
MeshData{MeshPrimitive::Lines, {}, Vertices, {
110+
}, &State}},
111+
/* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries
112+
to use a deleted copy constructor */
113+
MeshData3D{MeshData{MeshPrimitive::Lines, {}, Vertices, {
110114
MeshAttributeData{MeshAttributeName::Position,
111115
Containers::StridedArrayView1D<const Vector3>{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}},
112116
MeshAttributeData{MeshAttributeName::Normal,
@@ -115,7 +119,7 @@ struct {
115119
Containers::StridedArrayView1D<const Vector2>{Vertices, &Vertices[0].textureCoords1, 2, sizeof(Vertex)}},
116120
MeshAttributeData{MeshAttributeName::Color,
117121
Containers::StridedArrayView1D<const Color4>{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}},
118-
}, &State}
122+
}, &State}}
119123
}
120124
};
121125
CORRADE_IGNORE_DEPRECATED_POP

0 commit comments

Comments
 (0)