Fix test for warn_unused_result and move it to v8config.h.
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23546002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
3ed8601860
commit
2f10268045
@ -91,6 +91,7 @@
|
||||
//
|
||||
// V8_CC_CLANG - Clang
|
||||
// V8_CC_GNU - GNU C++
|
||||
// V8_CC_INTEL - Intel C++
|
||||
// V8_CC_MINGW - Minimalist GNU for Windows
|
||||
// V8_CC_MSVC - Microsoft Visual C/C++
|
||||
//
|
||||
@ -108,15 +109,24 @@
|
||||
// V8_HAS___ALIGNOF - __alignof(type) operator supported
|
||||
// V8_HAS___ALIGNOF__ - __alignof__(type) operator supported
|
||||
// V8_HAS_ATTRIBUTE_ALIGNED - __attribute__((aligned(n))) supported
|
||||
// V8_HAS_ATTRIBUTE_ALWAYS_INLINE - __attribute__((always_inline)) supported
|
||||
// V8_HAS_ATTRIBUTE_ALWAYS_INLINE - __attribute__((always_inline))
|
||||
// supported
|
||||
// V8_HAS_ATTRIBUTE_DEPRECATED - __attribute__((deprecated)) supported
|
||||
// V8_HAS_ATTRIBUTE_VISIBILITY - __attribute__((visibility)) supported
|
||||
// V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT - __attribute__((warn_unused_result))
|
||||
// supported
|
||||
// V8_HAS_BUILTIN_EXPECT - __builtin_expect() supported
|
||||
// V8_HAS_DECLSPEC_ALIGN - __declspec(align(n)) supported
|
||||
// V8_HAS_DECLSPEC_DEPRECATED - __declspec(deprecated) supported
|
||||
// V8_HAS___FINAL - __final supported in non-C++11 mode
|
||||
// V8_HAS___FORCEINLINE - __forceinline supported
|
||||
// V8_HAS_SEALED - MSVC style sealed marker supported
|
||||
//
|
||||
// Note that testing for compilers and/or features must be done using #if
|
||||
// not #ifdef. For example, to test for Intel C++ Compiler, use:
|
||||
// #if V8_CC_INTEL
|
||||
// ...
|
||||
// #endif
|
||||
|
||||
#if defined(__clang__)
|
||||
|
||||
@ -133,6 +143,8 @@
|
||||
# define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(always_inline))
|
||||
# define V8_HAS_ATTRIBUTE_DEPRECATED (__has_attribute(deprecated))
|
||||
# define V8_HAS_ATTRIBUTE_VISIBILITY (__has_attribute(visibility))
|
||||
# define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \
|
||||
(__has_attribute(warn_unused_result))
|
||||
|
||||
# define V8_HAS_BUILTIN_EXPECT (__has_builtin(__builtin_expect))
|
||||
|
||||
@ -149,9 +161,9 @@
|
||||
((major) * 10000 + (minor) * 100 + (patchlevel)))
|
||||
|
||||
# define V8_CC_GNU 1
|
||||
# if defined(__MINGW32__)
|
||||
# define V8_CC_MINGW 1
|
||||
# endif
|
||||
// Intel C++ also masquerades as GCC 3.2.0
|
||||
# define V8_CC_INTEL (defined(__INTEL_COMPILER))
|
||||
# define V8_CC_MINGW (defined(__MINGW32__))
|
||||
|
||||
# define V8_HAS___ALIGNOF__ (V8_GNUC_PREREQ(4, 3, 0))
|
||||
|
||||
@ -162,6 +174,8 @@
|
||||
# define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (V8_GNUC_PREREQ(4, 4, 0))
|
||||
# define V8_HAS_ATTRIBUTE_DEPRECATED (V8_GNUC_PREREQ(3, 4, 0))
|
||||
# define V8_HAS_ATTRIBUTE_VISIBILITY (V8_GNUC_PREREQ(4, 3, 0))
|
||||
# define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \
|
||||
(!V8_CC_INTEL && V8_GNUC_PREREQ(4, 1, 0))
|
||||
|
||||
# define V8_HAS_BUILTIN_EXPECT (V8_GNUC_PREREQ(2, 96, 0))
|
||||
|
||||
@ -228,6 +242,16 @@
|
||||
#endif
|
||||
|
||||
|
||||
// Annotate a function indicating the caller must examine the return value.
|
||||
// Use like:
|
||||
// int foo() V8_WARN_UNUSED_RESULT;
|
||||
#if V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT
|
||||
# define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||
#else
|
||||
# define V8_WARN_UNUSED_RESULT /* NOT SUPPORTED */
|
||||
#endif
|
||||
|
||||
|
||||
// A macro to provide the compiler with branch prediction information.
|
||||
#if V8_HAS_BUILTIN_EXPECT
|
||||
# define V8_UNLIKELY(condition) (__builtin_expect(!!(condition), 0))
|
||||
|
@ -357,11 +357,8 @@ F FUNCTION_CAST(Address addr) {
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__ >= 4
|
||||
#define MUST_USE_RESULT __attribute__ ((warn_unused_result))
|
||||
#else
|
||||
#define MUST_USE_RESULT
|
||||
#endif
|
||||
// Newly written code should use V8_WARN_UNUSED_RESULT.
|
||||
#define MUST_USE_RESULT V8_WARN_UNUSED_RESULT
|
||||
|
||||
|
||||
// Define DISABLE_ASAN macros.
|
||||
|
Loading…
Reference in New Issue
Block a user