diff options
author | weili <weili@chromium.org> | 2016-03-31 15:08:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-31 15:08:27 -0700 |
commit | 47ca692c8150cb39abef5737e866b91e6a105b80 (patch) | |
tree | cba8531fe7a569cfa7f05dc84f158bf1cf15be23 /core/fxcrt/fx_basic_gcc.cpp | |
parent | de0d852ed91973deda41f949e132b12a2efff1ef (diff) | |
download | pdfium-47ca692c8150cb39abef5737e866b91e6a105b80.tar.xz |
Re-enable all the windows warnings except 4267
The code is changed or had been changed to no longer generate these
warnings. It is safe to re-enabled these warnings.
In this code change, we fixed some code which generates warnings 4018
(signed/unsigned mismatch) and 4146 (unary minus operator applied to
unsigned type, result still unsigned).
Warning 4333 (right shift by too large amount, data loss) and 4345
(an object of POD type constructed with an initializer of the form ()
will be default-initialized) are no longer generated.
The same setting is applied and verified for GN build as well.
BUG=pdfium:29
Review URL: https://codereview.chromium.org/1849443003
Diffstat (limited to 'core/fxcrt/fx_basic_gcc.cpp')
-rw-r--r-- | core/fxcrt/fx_basic_gcc.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/fxcrt/fx_basic_gcc.cpp b/core/fxcrt/fx_basic_gcc.cpp index 1b2f01ec89..c3afe1115b 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> |