rsys

Basic data structures and low-level features
git clone git://git.meso-star.fr/rsys.git
Log | Files | Refs | README | LICENSE

commit ce10469d661e72d3d322eda9a42983d7df0d96ca
parent f7e8f6751739ba47f952da6eb4b2afdb84f77bec
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon,  2 Nov 2015 16:38:33 +0100

Fix overflow warning on integral constant (C4307)

Warning due to unexpected int/log identity on Win64
Fixed using C99 %lld and %llu formats

Diffstat:
Mcmake/CMakeLists.txt | 5+++++
Msrc/test_cstr.c | 6+++---
2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -177,6 +177,10 @@ if(NOT NO_TEST) COMPILE_DEFINITIONS TEST_LIBRARY_BUILD_LIB DEBUG_POSTFIX "") + if(CMAKE_COMPILER_IS_GNUCC) + set_target_properties(test_cstr PROPERTIES COMPILE_FLAGS "-std=c99") + endif() + if(NOT OPENMP_FOUND) message(STATUS "No OpenMP support: multi-threaded tests cannot be generated") else(NOT OPENMP_FOUND) @@ -192,6 +196,7 @@ if(NOT NO_TEST) endif(CMAKE_COMPILER_IS_GNUCC) endif(NOT OPENMP_FOUND) + endif(NOT NO_TEST) ################################################################################ diff --git a/src/test_cstr.c b/src/test_cstr.c @@ -87,9 +87,9 @@ main(int argc, char** argv) sprintf(buf, "%d", INT_MIN); CHECK(cstr_to_int(buf, &i), RES_OK); CHECK(i, INT_MIN); - sprintf(buf, "%ld", (long)INT_MAX+1); + sprintf(buf, "%lld", (long long)INT_MAX+1); CHECK(cstr_to_int(buf, &i), RES_BAD_ARG); - sprintf(buf, "%ld", (long)INT_MIN-1); + sprintf(buf, "%lld", (long long)INT_MIN-1); CHECK(cstr_to_int(buf, &i), RES_BAD_ARG); CHECK(cstr_to_uint(NULL, &u), RES_BAD_ARG); @@ -105,7 +105,7 @@ main(int argc, char** argv) sprintf(buf, "%u", UINT_MAX); CHECK(cstr_to_uint(buf, &u), RES_OK); CHECK(u, UINT_MAX); - sprintf(buf, "%lu", (unsigned long)UINT_MAX+1); + sprintf(buf, "%llu", (unsigned long long)UINT_MAX+1); CHECK(cstr_to_uint(buf, &u), RES_BAD_ARG); CHECK(cstr_to_list_double(NULL, dlist, NULL, 3), RES_BAD_ARG);