diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 61a4ff45..3ef86dfa 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -737,6 +737,13 @@ # define GLM_RELAXED_CONSTEXPR const #endif +// GCC 4.6 has a bug causing a compiler crash +#if GLM_COMPILER & GLM_COMPILER_GCC +# define GLM_CONSTEXPR_GCC +#else +# define GLM_CONSTEXPR_GCC GLM_CONSTEXPR +#endif + #ifdef GLM_FORCE_EXPLICIT_CTOR # define GLM_EXPLICIT explicit #else diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index cd68f576..472c89bd 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -102,14 +102,6 @@ namespace glm // -- Explicit basic constructors -- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec1(ctor); - - // GCC 4.6 has a bug causing a compiler crash -# if GLM_COMPILER & GLM_COMPILER_GCC -# define GLM_CONSTEXPR_GCC -# else -# define GLM_CONSTEXPR_GCC GLM_CONSTEXPR -# endif - GLM_FUNC_DECL GLM_CONSTEXPR_GCC explicit tvec1(T scalar); // -- Conversion vector constructors -- diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index 6dc2fd42..24d05e22 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -102,7 +102,7 @@ namespace glm // -- Explicit basic constructors -- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec2(ctor); - GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR_GCC explicit tvec2(T scalar); GLM_FUNC_DECL GLM_CONSTEXPR tvec2(T s1, T s2); // -- Conversion constructors -- diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl index 0868a895..4daccbea 100644 --- a/glm/detail/type_vec2.inl +++ b/glm/detail/type_vec2.inl @@ -72,7 +72,7 @@ namespace glm {} template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2::tvec2(T scalar) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR_GCC tvec2::tvec2(T scalar) : x(scalar), y(scalar) {} diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index c7e96230..d77834e1 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -103,7 +103,7 @@ namespace glm // -- Explicit basic constructors -- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec3(ctor); - GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR_GCC explicit tvec3(T scalar); GLM_FUNC_DECL GLM_CONSTEXPR tvec3(T a, T b, T c); // -- Conversion scalar constructors -- diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl index 54c79141..574e5606 100644 --- a/glm/detail/type_vec3.inl +++ b/glm/detail/type_vec3.inl @@ -89,7 +89,7 @@ namespace glm {} template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3::tvec3(T scalar) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR_GCC tvec3::tvec3(T scalar) : x(scalar), y(scalar), z(scalar) {} diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index 808a0a10..93ba6645 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -158,7 +158,7 @@ namespace detail // -- Explicit basic constructors -- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec4(ctor); - GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec4(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR_GCC explicit tvec4(T scalar); GLM_FUNC_DECL GLM_CONSTEXPR tvec4(T a, T b, T c, T d); // -- Conversion scalar constructors -- diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index 3e44daaf..4eac0b16 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -63,7 +63,7 @@ namespace glm {} template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4::tvec4(T scalar) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR_GCC tvec4::tvec4(T scalar) : x(scalar), y(scalar), z(scalar), w(scalar) {}