浏览代码

Fixed clang 13+ optimizer issue. Related to PR #278.

Бранимир Караџић 3 年之前
父节点
当前提交
480bbc7eba
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      include/bx/inline/math.inl

+ 7 - 1
include/bx/inline/math.inl

@@ -96,12 +96,18 @@ namespace bx
 		return tmp == UINT64_C(0x7ff0000000000000);
 		return tmp == UINT64_C(0x7ff0000000000000);
 	}
 	}
 
 
+	inline float forceEval(float _a)
+	{
+		volatile float result = _a;
+		return result;
+	}
+
 	inline BX_CONSTEXPR_FUNC float floor(float _a)
 	inline BX_CONSTEXPR_FUNC float floor(float _a)
 	{
 	{
 		if (_a < 0.0f)
 		if (_a < 0.0f)
 		{
 		{
 			const float fr = fract(-_a);
 			const float fr = fract(-_a);
-			const float result = -_a - fr;
+			const float result = forceEval(-_a - fr);
 
 
 			return -(0.0f != fr
 			return -(0.0f != fr
 				? result + 1.0f
 				? result + 1.0f