Index: core/fxcrt/fx_basic_gcc.cpp |
diff --git a/core/fxcrt/fx_basic_gcc.cpp b/core/fxcrt/fx_basic_gcc.cpp |
index 1b2f01ec8971165a0b5c640b9e896189f1069a32..c3afe1115b962641d9798c8911d72b92b1455ed2 100644 |
--- a/core/fxcrt/fx_basic_gcc.cpp |
+++ b/core/fxcrt/fx_basic_gcc.cpp |
@@ -39,7 +39,10 @@ IntType FXSYS_StrToInt(const CharType* str) { |
num = num * 10 + val; |
str++; |
} |
- return neg ? -num : num; |
+ // When it is a negative value, -num should be returned. Since num may be of |
+ // unsigned type, use ~num + 1 to avoid the warning of applying unary minus |
+ // operator to unsigned type. |
+ return neg ? ~num + 1 : num; |
} |
template <typename T, typename UT, typename STR_T> |