Thread: [brlcad-commits] SF.net SVN: brlcad:[34540] brlcad/trunk/include/common.h
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <d_r...@us...> - 2009-05-15 18:33:47
|
Revision: 34540 http://brlcad.svn.sourceforge.net/brlcad/?rev=34540&view=rev Author: d_rossberg Date: 2009-05-15 18:33:32 +0000 (Fri, 15 May 2009) Log Message: ----------- HAVE_DRAND48 does only make sense with a config.h Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2009-05-15 18:01:35 UTC (rev 34539) +++ brlcad/trunk/include/common.h 2009-05-15 18:33:32 UTC (rev 34540) @@ -46,9 +46,19 @@ # include "config_win.h" # else # include "brlcad_config.h" +# endif /* _WIN32 */ + +/** + * Simulates drand48() functionality using rand() which + * is assumed to exist everywhere. The range is [0, 1). + */ +# ifndef HAVE_DRAND48 +# define HAVE_DRAND48 1 +# define drand48() ((double)rand() / (double)(RAND_MAX + 1)) # endif -#endif /* _WIN32 */ +#endif /* BRLCADBUILD & HAVE_CONFIG_H */ + /* support ANSI function declarations */ #ifndef USE_PROTOTYPES # define USE_PROTOTYPES 1 @@ -94,15 +104,6 @@ #define FMAX(a, b) (((a)>(b))?(a):(b)) #define FMIN(a, b) (((a)<(b))?(a):(b)) -/** - * Simulates drand48() functionality using rand() which - * is assumed to exist everywhere. The range is [0, 1). - */ -#ifndef HAVE_DRAND48 -# define HAVE_DRAND48 1 -# define drand48() ((double)rand() / (double)(RAND_MAX + 1)) -#endif - #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-10-29 21:46:26
|
Revision: 36335 http://brlcad.svn.sourceforge.net/brlcad/?rev=36335&view=rev Author: brlcad Date: 2009-10-29 21:46:19 +0000 (Thu, 29 Oct 2009) Log Message: ----------- wow, HIDDEN has been non-static all this time... 'lint' is apparently no longer being defined so couple the static setting to whether or not we're compiling in debug mode or not (so by default, debug mode has non-static for traceability). this means applications will have to take care to not clobber library symbols. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2009-10-29 21:13:59 UTC (rev 36334) +++ brlcad/trunk/include/common.h 2009-10-29 21:46:19 UTC (rev 36335) @@ -77,7 +77,7 @@ * sometimes helpful to debuggers. */ #if !defined(HIDDEN) -# if defined(lint) +# if defined(NDEBUG) # define HIDDEN static # else # define HIDDEN /***/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-22 21:14:48
|
Revision: 37705 http://brlcad.svn.sourceforge.net/brlcad/?rev=37705&view=rev Author: brlcad Date: 2010-02-22 21:14:42 +0000 (Mon, 22 Feb 2010) Log Message: ----------- if we don't have ssize_t (e.g., windows), use ptrdiff_t instead. it should be a signed type that matches pointer size and is c99. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-22 21:13:38 UTC (rev 37704) +++ brlcad/trunk/include/common.h 2010-02-22 21:14:42 UTC (rev 37705) @@ -86,6 +86,11 @@ # endif #endif +/* C does not provide a ssize_t, though it is SUS97 */ +#ifndef HAVE_SSIZE_T +typedef ptrdiff_t ssize_t; +#endif + #ifndef FMAX # define FMAX(a, b) (((a)>(b))?(a):(b)) #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-23 05:31:13
|
Revision: 37709 http://brlcad.svn.sourceforge.net/brlcad/?rev=37709&view=rev Author: brlcad Date: 2010-02-23 05:31:07 +0000 (Tue, 23 Feb 2010) Log Message: ----------- need to include the header that provides ptrdiff_t if we're going to typedef it, otherwise needs to turn into a #define instead. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-23 04:00:23 UTC (rev 37708) +++ brlcad/trunk/include/common.h 2010-02-23 05:31:07 UTC (rev 37709) @@ -53,8 +53,8 @@ * is assumed to exist everywhere. The range is [0, 1). */ # ifndef HAVE_DRAND48 +# define drand48() ((double)rand() / (double)(RAND_MAX + 1)) # define HAVE_DRAND48 1 -# define drand48() ((double)rand() / (double)(RAND_MAX + 1)) # endif #endif /* BRLCADBUILD & HAVE_CONFIG_H */ @@ -88,7 +88,9 @@ /* C does not provide a ssize_t, though it is SUS97 */ #ifndef HAVE_SSIZE_T +#include <stddef.h> typedef ptrdiff_t ssize_t; +# define HAVE_SSIZE_T 1 #endif #ifndef FMAX This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-23 06:26:31
|
Revision: 37714 http://brlcad.svn.sourceforge.net/brlcad/?rev=37714&view=rev Author: brlcad Date: 2010-02-23 06:26:24 +0000 (Tue, 23 Feb 2010) Log Message: ----------- still not perfect but this should help things along for 3rd party codes that don't have a HAVE_SSIZE_T define. only provide the typedef if we can't find hint of SSIZE_MAX. (untested) Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-23 06:10:13 UTC (rev 37713) +++ brlcad/trunk/include/common.h 2010-02-23 06:26:24 UTC (rev 37714) @@ -48,9 +48,8 @@ # include "brlcad_config.h" # endif /* _WIN32 */ -/** - * Simulates drand48() functionality using rand() which - * is assumed to exist everywhere. The range is [0, 1). +/* Simulates drand48() functionality using rand() which is assumed to + * exist everywhere. The range is [0, 1). */ # ifndef HAVE_DRAND48 # define drand48() ((double)rand() / (double)(RAND_MAX + 1)) @@ -86,13 +85,6 @@ # endif #endif -/* C does not provide a ssize_t, though it is SUS97 */ -#ifndef HAVE_SSIZE_T -#include <stddef.h> -typedef ptrdiff_t ssize_t; -# define HAVE_SSIZE_T 1 -#endif - #ifndef FMAX # define FMAX(a, b) (((a)>(b))?(a):(b)) #endif @@ -100,6 +92,19 @@ # define FMIN(a, b) (((a)<(b))?(a):(b)) #endif +/* C does not provide a ssize_t even though it is provided by SUS97. + * regardless, we use it so make sure it's declared by using the + * similar POSIX ptrdiff_t type. + */ +# ifndef HAVE_SSIZE_T +# include <stddef.h> +# include <limits.h> +# ifndef SSIZE_MAX +typedef ptrdiff_t ssize_t; +# define HAVE_SSIZE_T 1 +# endif +# endif + #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-24 04:55:57
|
Revision: 37739 http://brlcad.svn.sourceforge.net/brlcad/?rev=37739&view=rev Author: brlcad Date: 2010-02-24 04:55:51 +0000 (Wed, 24 Feb 2010) Log Message: ----------- might need sys/types.h for ptrdiff_t so conditionally include it too in the ssize_t section Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-24 04:45:42 UTC (rev 37738) +++ brlcad/trunk/include/common.h 2010-02-24 04:55:51 UTC (rev 37739) @@ -96,14 +96,17 @@ * regardless, we use it so make sure it's declared by using the * similar POSIX ptrdiff_t type. */ -# ifndef HAVE_SSIZE_T -# include <stddef.h> -# include <limits.h> -# ifndef SSIZE_MAX +#ifndef HAVE_SSIZE_T +# ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +# endif +# include <limits.h> +# include <stddef.h> +# ifndef SSIZE_MAX typedef ptrdiff_t ssize_t; -# define HAVE_SSIZE_T 1 -# endif +# define HAVE_SSIZE_T 1 # endif +#endif #endif /* __COMMON_H__ */ /** @} */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-25 23:54:48
|
Revision: 37790 http://brlcad.svn.sourceforge.net/brlcad/?rev=37790&view=rev Author: brlcad Date: 2010-02-25 23:54:40 +0000 (Thu, 25 Feb 2010) Log Message: ----------- see if UINTPTR_MAX is defined Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-25 23:29:56 UTC (rev 37789) +++ brlcad/trunk/include/common.h 2010-02-25 23:54:40 UTC (rev 37790) @@ -115,12 +115,14 @@ # ifdef HAVE_STDINT_H # include <stdint.h> # endif -# ifdef HAVE_UINT64_T +# ifndef UINTPTR_MAX +# ifdef HAVE_UINT64_T typedef uint64_t uintptr_t; -# else +# else typedef unsigned long long uintptr_t; +# endif +# define HAVE_UINT64_T 1 # endif -# define HAVE_UINT64_T 1 #endif #endif /* __COMMON_H__ */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2010-02-26 08:52:30
|
Revision: 37796 http://brlcad.svn.sourceforge.net/brlcad/?rev=37796&view=rev Author: d_rossberg Date: 2010-02-26 08:52:23 +0000 (Fri, 26 Feb 2010) Log Message: ----------- hack to get the MS Windows DLL build working: defined HAVE_UINTPTR_T if BRLCADBUILD and HAVE_CONFIG_H are not set this needs probably to be reworked: the HAVE_~ macros are (or should be) only present if HAVE_CONFIG_H is set Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-26 06:13:41 UTC (rev 37795) +++ brlcad/trunk/include/common.h 2010-02-26 08:52:23 UTC (rev 37796) @@ -111,6 +111,10 @@ /* C99 says uintptr_t is an optional type, so make sure something is * provided. */ +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(HAVE_UINTPTR_T) +# define HAVE_UINTPTR_T 1 +#endif + #if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t) # ifdef HAVE_STDINT_H # include <stdint.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-26 09:18:24
|
Revision: 37797 http://brlcad.svn.sourceforge.net/brlcad/?rev=37797&view=rev Author: brlcad Date: 2010-02-26 09:18:17 +0000 (Fri, 26 Feb 2010) Log Message: ----------- see if including stddef.h is enough to get UINTPTR_MAX Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-26 08:52:23 UTC (rev 37796) +++ brlcad/trunk/include/common.h 2010-02-26 09:18:17 UTC (rev 37797) @@ -111,11 +111,8 @@ /* C99 says uintptr_t is an optional type, so make sure something is * provided. */ -#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(HAVE_UINTPTR_T) -# define HAVE_UINTPTR_T 1 -#endif - #if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t) +# include <stddef.h> # ifdef HAVE_STDINT_H # include <stdint.h> # endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-02-26 09:21:24
|
Revision: 37798 http://brlcad.svn.sourceforge.net/brlcad/?rev=37798&view=rev Author: brlcad Date: 2010-02-26 09:21:17 +0000 (Fri, 26 Feb 2010) Log Message: ----------- try keying off of UINTPTRT_T_DEFINED too for windows Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-26 09:18:17 UTC (rev 37797) +++ brlcad/trunk/include/common.h 2010-02-26 09:21:17 UTC (rev 37798) @@ -116,7 +116,7 @@ # ifdef HAVE_STDINT_H # include <stdint.h> # endif -# ifndef UINTPTR_MAX +# if !defined(UINTPTR_MAX) && !defined(UINTPTRT_T_DEFINED) # ifdef HAVE_UINT64_T typedef uint64_t uintptr_t; # else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2010-02-26 10:17:04
|
Revision: 37800 http://brlcad.svn.sourceforge.net/brlcad/?rev=37800&view=rev Author: d_rossberg Date: 2010-02-26 10:16:57 +0000 (Fri, 26 Feb 2010) Log Message: ----------- clean extension of version 37790 for MS Visual Studio (fixed another typing error, removed interim stddef.h include) Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-02-26 10:08:35 UTC (rev 37799) +++ brlcad/trunk/include/common.h 2010-02-26 10:16:57 UTC (rev 37800) @@ -112,11 +112,10 @@ * provided. */ #if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t) -# include <stddef.h> # ifdef HAVE_STDINT_H # include <stdint.h> # endif -# if !defined(UINTPTR_MAX) && !defined(UINTPTRT_T_DEFINED) +# if !defined(UINTPTR_MAX) && !defined(_UINTPTR_T_DEFINED) # ifdef HAVE_UINT64_T typedef uint64_t uintptr_t; # else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2010-03-09 13:56:44
|
Revision: 37951 http://brlcad.svn.sourceforge.net/brlcad/?rev=37951&view=rev Author: d_rossberg Date: 2010-03-09 13:56:36 +0000 (Tue, 09 Mar 2010) Log Message: ----------- MS Visual Studio knows uintptr_t but no int8_t etc. moved the test for _UINTPTR_T_DEFINED to the correct place Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-03-09 13:54:21 UTC (rev 37950) +++ brlcad/trunk/include/common.h 2010-03-09 13:56:36 UTC (rev 37951) @@ -115,7 +115,7 @@ # ifdef HAVE_STDINT_H # include <stdint.h> # endif -# if !defined(UINTPTR_MAX) && !defined(_UINTPTR_T_DEFINED) +# if !defined(UINTPTR_MAX) # ifdef HAVE___INT8 typedef __int8 int8_t; typedef __int16 int16_t; @@ -126,7 +126,9 @@ typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; +# if !defined(_UINTPTR_T_DEFINED) typedef uint64_t uintptr_t; +# endif # else typedef char int8_t; typedef short int16_t; @@ -137,7 +139,9 @@ typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; +# if !defined(_UINTPTR_T_DEFINED) typedef unsigned long long uintptr_t; +# endif # endif # define HAVE_INT8_T 1 # define HAVE_INT16_T 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-03-09 14:48:20
|
Revision: 37954 http://brlcad.svn.sourceforge.net/brlcad/?rev=37954&view=rev Author: brlcad Date: 2010-03-09 14:48:14 +0000 (Tue, 09 Mar 2010) Log Message: ----------- make sure the stdint types are provided for C++ apps too, define __STDC_LIMIT_MACROS and include the old inttypes.h header in order to get intmax_t Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-03-09 14:31:15 UTC (rev 37953) +++ brlcad/trunk/include/common.h 2010-03-09 14:48:14 UTC (rev 37954) @@ -110,13 +110,23 @@ /* C99 says uintptr_t is an optional type, so make sure something is * provided. make sure all of the C99 stdint types are provided. + * + * make sure we get the limit macros for C++ as well even though + * they're not in the standard via __STDC_LIMIT_MACROS. */ + */ #if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t) +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS 1 +# endif # ifdef HAVE_STDINT_H # include <stdint.h> # endif +# ifdef HAVE_INTTYPES_H +# include <inttypes.h> +# endif # if !defined(UINTPTR_MAX) -# ifdef HAVE___INT8 +# if defined(_I64_MIN) typedef __int8 int8_t; typedef __int16 int16_t; typedef __int32 int32_t; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-03-09 14:54:53
|
Revision: 37957 http://brlcad.svn.sourceforge.net/brlcad/?rev=37957&view=rev Author: brlcad Date: 2010-03-09 14:54:47 +0000 (Tue, 09 Mar 2010) Log Message: ----------- oops, typo Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-03-09 14:54:18 UTC (rev 37956) +++ brlcad/trunk/include/common.h 2010-03-09 14:54:47 UTC (rev 37957) @@ -114,7 +114,6 @@ * make sure we get the limit macros for C++ as well even though * they're not in the standard via __STDC_LIMIT_MACROS. */ - */ #if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t) # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 @@ -140,7 +139,7 @@ typedef uint64_t uintptr_t; # endif # else -typedef char int8_t; +typedef signed char int8_t; typedef short int16_t; typedef int int32_t; typedef long long int64_t; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-03-09 18:31:22
|
Revision: 37962 http://brlcad.svn.sourceforge.net/brlcad/?rev=37962&view=rev Author: brlcad Date: 2010-03-09 18:31:16 +0000 (Tue, 09 Mar 2010) Log Message: ----------- simplify. use the new pstdint.h header instead of rolling our own tests. thusfar, only tested on mac 10.4 so consider it tentative and preliminary. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-03-09 18:20:18 UTC (rev 37961) +++ brlcad/trunk/include/common.h 2010-03-09 18:31:16 UTC (rev 37962) @@ -108,62 +108,13 @@ # endif #endif -/* C99 says uintptr_t is an optional type, so make sure something is - * provided. make sure all of the C99 stdint types are provided. - * - * make sure we get the limit macros for C++ as well even though - * they're not in the standard via __STDC_LIMIT_MACROS. +/* make sure most of the C99 stdint types are provided including the + * optional uintptr_t type. */ -#if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t) -# ifndef __STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS 1 -# endif -# ifdef HAVE_STDINT_H -# include <stdint.h> -# endif -# ifdef HAVE_INTTYPES_H -# include <inttypes.h> -# endif -# if !defined(UINTPTR_MAX) -# if defined(_I64_MIN) -typedef __int8 int8_t; -typedef __int16 int16_t; -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef __int64 intmax_t; -typedef unsigned __int8 uint8_t; -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; -# if !defined(_UINTPTR_T_DEFINED) -typedef uint64_t uintptr_t; -# endif -# else -typedef signed char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef long long int64_t; -typedef int64_t intmax_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -typedef unsigned long long uint64_t; -# if !defined(_UINTPTR_T_DEFINED) -typedef unsigned long long uintptr_t; -# endif -# endif -# define HAVE_INT8_T 1 -# define HAVE_INT16_T 1 -# define HAVE_INT32_T 1 -# define HAVE_INT64_T 1 -# define HAVE_UINT8_T 1 -# define HAVE_UINT16_T 1 -# define HAVE_UINT32_T 1 -# define HAVE_UINT64_T 1 -# define HAVE_INTMAX_T 1 -# define HAVE_UINTPTR_T 1 -# endif +#ifdef HAVE_STDINT_H +# include <stdint.h> #endif +#include "pstdint.h" #endif /* __COMMON_H__ */ /** @} */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-03-10 14:46:31
|
Revision: 37977 http://brlcad.svn.sourceforge.net/brlcad/?rev=37977&view=rev Author: brlcad Date: 2010-03-10 14:46:24 +0000 (Wed, 10 Mar 2010) Log Message: ----------- only include stdint.h or pstdint.h if one doesn't seem to be included already. define the __STDC_CONSTANT_MACROS and __STDC_LIMIT_MACROS so that we get consistent behavior for C++ compilation as well. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-03-10 13:53:07 UTC (rev 37976) +++ brlcad/trunk/include/common.h 2010-03-10 14:46:24 UTC (rev 37977) @@ -111,10 +111,15 @@ /* make sure most of the C99 stdint types are provided including the * optional uintptr_t type. */ -#ifdef HAVE_STDINT_H -# include <stdint.h> +#if !defined(INT8_MAX) || !defined(INT16_MAX) || !defined(INT32_MAX) || !defined(INT64_MAX) +# ifdef HAVE_STDINT_H +# define __STDC_LIMIT_MACROS 1 +# define __STDC_CONSTANT_MACROS 1 +# include <stdint.h> +# else +# include "pstdint.h" +# endif #endif -#include "pstdint.h" #endif /* __COMMON_H__ */ /** @} */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-08 16:03:38
|
Revision: 38387 http://brlcad.svn.sourceforge.net/brlcad/?rev=38387&view=rev Author: brlcad Date: 2010-04-08 16:03:29 +0000 (Thu, 08 Apr 2010) Log Message: ----------- add a GNUC_PREREQ macro to test the version of gcc as well as an UNUSED() macro to simplify setting an __attribute__((unused)) on unused parameters (or making it an anonymous param if this is msvc) Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-08 15:02:00 UTC (rev 38386) +++ brlcad/trunk/include/common.h 2010-04-08 16:03:29 UTC (rev 38387) @@ -121,6 +121,26 @@ # endif #endif +/* provide a means to conveniently test the version of GCC */ +#if defined __GNUC__ +# define GNUC_PREREQ(major, minor) __GNUC__ < major || (__GNUC__ == major && __GNUC_MINOR__ < minor) +#else +# define GNUC_PREREQ(major, minor) 0 +#endif + +/* provide a common mechanism for declaring unused parameters */ +#ifndef UNUSED +# if GNUC_PREREQ(2, 5) + /* GCC-style */ +# define UNUSED(var) var __attribute__((unused)) +# else + /* MSVC/C++ */ +# define UNUSED(var) /* var */ +# endif +#else +# warning "UNUSED is already defined. Parameter declaration behavior is unknown, see common.h" +#endif + #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-09 02:24:34
|
Revision: 38398 http://brlcad.svn.sourceforge.net/brlcad/?rev=38398&view=rev Author: brlcad Date: 2010-04-09 02:24:27 +0000 (Fri, 09 Apr 2010) Log Message: ----------- provide a similar block for the intel compiler for testing version Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-09 02:11:50 UTC (rev 38397) +++ brlcad/trunk/include/common.h 2010-04-09 02:24:27 UTC (rev 38398) @@ -121,20 +121,43 @@ # endif #endif -/* Provide a means to conveniently test the version of GCC. - * Use it like this: +/* Provide a means to conveniently test the version of the GNU + * compiler. Use it like this: * - * #if __GCC_PREREQ(2,8) + * #if GCC_PREREQ(2,8) * ... code requiring gcc 2.8 or later ... * #endif * */ -#if defined __GNUC__ -# define GCC_PREREQ(major, minor) __GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)) +#ifndef GCC_PREREQ +# if defined __GNUC__ +# define GCC_PREREQ(major, minor) __GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)) +# else +# define GCC_PREREQ(major, minor) 0 +# endif #else -# define GCC_PREREQ(major, minor) 0 +# warning "GCC_PREREQ is already defined. See the common.h header." #endif +/* Provide a means to conveniently test the version of the Intel + * compiler. Use it like this: + * + * #if ICC_PREREQ(800) + * ... code requiring icc 8.0 or later ... + * #endif + * + */ +/* provide a means to conveniently test the version of ICC */ +#ifndef ICC_PREREQ +# if defined __INTEL_COMPILER +# define ICC_PREREQ(version) (__INTEL_COMPILER >= (version)) +# else +# define ICC_PREREQ(version) 0 +# endif +#else +# warning "ICC_PREREQ is already defined. See the common.h header." +#endif + /** * This is so we can use gcc's "format string vs arguments"-check for * various printf-like functions, and still maintain compatability. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-09 02:40:41
|
Revision: 38399 http://brlcad.svn.sourceforge.net/brlcad/?rev=38399&view=rev Author: brlcad Date: 2010-04-09 02:40:34 +0000 (Fri, 09 Apr 2010) Log Message: ----------- add similar LIKELY and UNLIKELY macros for branch prediction hinting. be VERY brazen in making it clear that the new GCC_PREREQ and ICC_PREREQ macros are not intended to be used outside of the common.h header file (as client code should not be based on compilers, they should be based on tested features). Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-09 02:24:27 UTC (rev 38398) +++ brlcad/trunk/include/common.h 2010-04-09 02:40:34 UTC (rev 38399) @@ -128,6 +128,8 @@ * ... code requiring gcc 2.8 or later ... * #endif * + * WARNING: THIS MACRO IS CONSIDERED PRIVATE AND SHOULD NOT BE USED + * OUTSIDE OF THIS HEADER FILE. DO NOT RELY ON IT. */ #ifndef GCC_PREREQ # if defined __GNUC__ @@ -146,6 +148,8 @@ * ... code requiring icc 8.0 or later ... * #endif * + * WARNING: THIS MACRO IS CONSIDERED PRIVATE AND SHOULD NOT BE USED + * OUTSIDE OF THIS HEADER FILE. DO NOT RELY ON IT. */ /* provide a means to conveniently test the version of ICC */ #ifndef ICC_PREREQ @@ -177,7 +181,16 @@ # endif #endif -/* provide a common mechanism for declaring unused parameters */ +/* UNUSED provides a common mechanism for declaring unused parameters. + * Use it like this: + * + * int + * my_function(int argc, char **UNUSED(argv)) + * { + * ... + * } + * + */ #ifndef UNUSED # if GCC_PREREQ(2, 5) /* GCC-style */ @@ -190,6 +203,47 @@ # warning "UNUSED is already defined. Parameter declaration behavior is unknown, see common.h" #endif +/* LIKELY provides a common mechanism for providing branch prediction + * hints to the compiler so that it can better optimize. Use it like + * this: + * + * if (LIKELY(x == 1)) { + * ... expected code path ... + * } + * + */ +#ifndef LIKELY +# if GCC_PREREQ(3, 0) || ICC_PREREQ(800) + +# define LIKELY(expression) __builtin_expect((expression), 1) +# else +# define LIKELY(expression) (expression) +# endif +#else +# define LIKELY(expression) (expression) +# warning "LIKELY is already defined. Unable to provide branch hinting." +#endif + +/* UNLIKELY provides a common mechanism for providing branch + * prediction hints to the compiler so that it can better optimize. + * Use it like this: + * + * if (UNLIKELY(x == 0)) { + * ... unexpected code path ... + * } + * + */ +#ifndef UNLIKELY +# if GNUC_PREREQ(3, 0) || ICC_PREREQ(800) +# define UNLIKELY(expression) __builtin_expect((expression), 0) +# else +# define UNLIKELY(expression) (expression) +# endif +#else +# define UNLIKELY(expression) (expression) +# warning "UNLIKELY is already defined. Unable to provide branch hinting." +#endif + #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-09 02:46:45
|
Revision: 38400 http://brlcad.svn.sourceforge.net/brlcad/?rev=38400&view=rev Author: brlcad Date: 2010-04-09 02:46:39 +0000 (Fri, 09 Apr 2010) Log Message: ----------- doxygen commens on the new UNUSED/LIKELY/UNLIKELY macros. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-09 02:40:34 UTC (rev 38399) +++ brlcad/trunk/include/common.h 2010-04-09 02:46:39 UTC (rev 38400) @@ -162,8 +162,7 @@ # warning "ICC_PREREQ is already defined. See the common.h header." #endif -/** - * This is so we can use gcc's "format string vs arguments"-check for +/* This is so we can use gcc's "format string vs arguments"-check for * various printf-like functions, and still maintain compatability. */ #ifndef __attribute__ @@ -181,7 +180,8 @@ # endif #endif -/* UNUSED provides a common mechanism for declaring unused parameters. +/** + * UNUSED provides a common mechanism for declaring unused parameters. * Use it like this: * * int @@ -203,9 +203,11 @@ # warning "UNUSED is already defined. Parameter declaration behavior is unknown, see common.h" #endif -/* LIKELY provides a common mechanism for providing branch prediction - * hints to the compiler so that it can better optimize. Use it like - * this: +/** + * LIKELY provides a common mechanism for providing branch prediction + * hints to the compiler so that it can better optimize. It should be + * used when it's exceptionally likely that an expected code path will + * almost always be executed. Use it like this: * * if (LIKELY(x == 1)) { * ... expected code path ... @@ -224,9 +226,11 @@ # warning "LIKELY is already defined. Unable to provide branch hinting." #endif -/* UNLIKELY provides a common mechanism for providing branch +/** + * UNLIKELY provides a common mechanism for providing branch * prediction hints to the compiler so that it can better optimize. - * Use it like this: + * It should be used when it's exceptionaly unlikely that a given code + * path will ever be executed. Use it like this: * * if (UNLIKELY(x == 0)) { * ... unexpected code path ... This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-09 02:53:00
|
Revision: 38401 http://brlcad.svn.sourceforge.net/brlcad/?rev=38401&view=rev Author: brlcad Date: 2010-04-09 02:52:53 +0000 (Fri, 09 Apr 2010) Log Message: ----------- little more consistency if we somehow happen to run into a conflicting macro Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-09 02:46:39 UTC (rev 38400) +++ brlcad/trunk/include/common.h 2010-04-09 02:52:53 UTC (rev 38401) @@ -194,13 +194,15 @@ #ifndef UNUSED # if GCC_PREREQ(2, 5) /* GCC-style */ -# define UNUSED(var) var __attribute__((unused)) +# define UNUSED(parameter) (parameter) __attribute__((unused)) # else /* MSVC/C++ */ -# define UNUSED(var) /* var */ +# define UNUSED(parameter) /* parameter */ # endif #else -# warning "UNUSED is already defined. Parameter declaration behavior is unknown, see common.h" +# undef UNUSED +# define UNUSED(parameter) (parameter) +# warning "UNUSED was previously defined. Parameter declaration behavior is unknown, see common.h" #endif /** @@ -222,8 +224,9 @@ # define LIKELY(expression) (expression) # endif #else +# undef LIKELY # define LIKELY(expression) (expression) -# warning "LIKELY is already defined. Unable to provide branch hinting." +# warning "LIKELY was previously defined. Unable to provide branch hinting." #endif /** @@ -244,10 +247,13 @@ # define UNLIKELY(expression) (expression) # endif #else +# undef UNLIKELY # define UNLIKELY(expression) (expression) -# warning "UNLIKELY is already defined. Unable to provide branch hinting." +# warning "UNLIKELY was previously defined. Unable to provide branch hinting." #endif +/** + * DEPRECATED #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-09 02:53:48
|
Revision: 38402 http://brlcad.svn.sourceforge.net/brlcad/?rev=38402&view=rev Author: brlcad Date: 2010-04-09 02:53:42 +0000 (Fri, 09 Apr 2010) Log Message: ----------- oops, premature commit Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-09 02:52:53 UTC (rev 38401) +++ brlcad/trunk/include/common.h 2010-04-09 02:53:42 UTC (rev 38402) @@ -252,8 +252,6 @@ # warning "UNLIKELY was previously defined. Unable to provide branch hinting." #endif -/** - * DEPRECATED #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-09 03:15:56
|
Revision: 38403 http://brlcad.svn.sourceforge.net/brlcad/?rev=38403&view=rev Author: brlcad Date: 2010-04-09 03:15:49 +0000 (Fri, 09 Apr 2010) Log Message: ----------- add one more for a DEPRECATED marker that can be left on public API to warn if they're used. fix a typo on UNLIKELY too. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-09 02:53:42 UTC (rev 38402) +++ brlcad/trunk/include/common.h 2010-04-09 03:15:49 UTC (rev 38403) @@ -241,7 +241,7 @@ * */ #ifndef UNLIKELY -# if GNUC_PREREQ(3, 0) || ICC_PREREQ(800) +# if GCC_PREREQ(3, 0) || ICC_PREREQ(800) # define UNLIKELY(expression) __builtin_expect((expression), 0) # else # define UNLIKELY(expression) (expression) @@ -252,6 +252,30 @@ # warning "UNLIKELY was previously defined. Unable to provide branch hinting." #endif +/** + * DEPRECATED provides a common mechanism for denoting public API + * (e.g., functions, typedefs, variables) that is considered + * deprecated. Use it like this: + * + * DEPRECATED int my_function(void); + * + * typedef struct karma some_type DEPRECATED; + */ +#ifndef DEPRECATED +# if GCC_PREREQ(3, 1) || ICC_PREREQ(800) +# define DEPRECATED __attribute__((deprecated)) +# elif defined(_WIN32) +# define DEPRECATED __declspec(deprecated("This function is DEPRECATED. Please update code to new API.")) +# else +# define DEPRECATED /* deprecated */ +# endif +#else +# undef DEPRECATED +# define DEPRECATED /* deprecated */ +# warning "DEPRECATED was previously defined. Disabling the declaration." +#endif + + #endif /* __COMMON_H__ */ /** @} */ /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2010-04-12 11:28:40
|
Revision: 38453 http://brlcad.svn.sourceforge.net/brlcad/?rev=38453&view=rev Author: d_rossberg Date: 2010-04-12 11:28:33 +0000 (Mon, 12 Apr 2010) Log Message: ----------- MSVC C2055 error in connection with UNUSED() macro MSVC (w/o ++) requires a formal parameter list not a type list (ANSI C behavior) Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-12 11:14:56 UTC (rev 38452) +++ brlcad/trunk/include/common.h 2010-04-12 11:28:33 UTC (rev 38453) @@ -197,7 +197,11 @@ # define UNUSED(parameter) (parameter) __attribute__((unused)) # else /* MSVC/C++ */ -# define UNUSED(parameter) /* parameter */ +# ifdef __cplusplus +# define UNUSED(parameter) /* parameter */ +# else +# define UNUSED(parameter) (parameter) +# endif # endif #else # undef UNUSED This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-04-13 11:37:11
|
Revision: 38520 http://brlcad.svn.sourceforge.net/brlcad/?rev=38520&view=rev Author: brlcad Date: 2010-04-13 11:37:04 +0000 (Tue, 13 Apr 2010) Log Message: ----------- totally punt for windows and turn off reporting unreferenced formal parameters (c4100). alternative would be to call UNREFERENCED_PARAMETER() in the function body (which presumably sets the parameter to itself or some similar hack), but I'm not feeling it given they're already identified in a more open declarative manner for gcc. Modified Paths: -------------- brlcad/trunk/include/common.h Modified: brlcad/trunk/include/common.h =================================================================== --- brlcad/trunk/include/common.h 2010-04-13 11:30:13 UTC (rev 38519) +++ brlcad/trunk/include/common.h 2010-04-13 11:37:04 UTC (rev 38520) @@ -200,6 +200,8 @@ # ifdef __cplusplus # define UNUSED(parameter) /* parameter */ # else + /* disable reporting an "unreferenced formal parameter" */ +# pragma warning( disable : 4100 ) # define UNUSED(parameter) (parameter) # endif # endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |