From: malaterre Date: Sat, 22 Jan 2005 22:21:19 +0000 (+0000) Subject: BUG: there was a problem with uint64_t. C99 clearly specify that vendor compiler... X-Git-Tag: Version1.0.bp~214 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=eebf2c84ee4b7d361c81ab463d546cb5e843f09e;p=gdcm.git BUG: there was a problem with uint64_t. C99 clearly specify that vendor compiler should provide a stdint.h file. If not include inttypes (HPUX, SunOS). And on broekn platerform Win32 provide the proper typedef (it used to be broekn on Win64). --- diff --git a/CMakeLists.txt b/CMakeLists.txt index fdc9ff04..2a536c87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,7 @@ TEST_BIG_ENDIAN(GDCM_WORDS_BIGENDIAN) INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) CHECK_INCLUDE_FILE("stdint.h" CMAKE_HAVE_STDINT_H) +CHECK_INCLUDE_FILE("inttypes.h" CMAKE_HAVE_INTTYPES_H) # Check if header file exists and add it to the list. INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake) diff --git a/gdcmConfigure.h.in b/gdcmConfigure.h.in index 311f2b30..0737e4a3 100644 --- a/gdcmConfigure.h.in +++ b/gdcmConfigure.h.in @@ -23,6 +23,7 @@ /* I guess something important */ #cmakedefine CMAKE_HAVE_STDINT_H +#cmakedefine CMAKE_HAVE_INTTYPES_H /* This variable allows you to have helpful debug statement */ /* That are in between #ifdef / endif in the gdcm code */ diff --git a/src/gdcmCommon.h b/src/gdcmCommon.h index 82b8dae2..2313fe01 100644 --- a/src/gdcmCommon.h +++ b/src/gdcmCommon.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmCommon.h,v $ Language: C++ - Date: $Date: 2005/01/22 12:39:12 $ - Version: $Revision: 1.55 $ + Date: $Date: 2005/01/22 22:21:19 $ + Version: $Revision: 1.56 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -46,15 +46,24 @@ //----------------------------------------------------------------------------- #ifdef CMAKE_HAVE_STDINT_H -#include // For uint8_t uint16_t and uint32_t + #include #else -#if defined(_MSC_VER) || defined(__BORLANDC__) -typedef signed char int8_t; +#ifdef CMAKE_HAVE_INTTYPES_H + // Old system only have this + #include // For uint8_t uint16_t and uint32_t +#endif #endif -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#define uint64_t unsigned __int64 // problems with swig when using a typedef + +// Broken plateform do not respect C99 and do not provide those typedef +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef signed __int8 int8_t; +typedef signed __int16 int16_t; +typedef signed __int32 int32_t; +typedef signed __int64 int64_t; +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; #define UINT32_MAX (4294967295U) #endif