]> www.ginac.de Git - cln.git/blobdiff - src/base/cl_macros.h
Fix compilation error on MSVC.
[cln.git] / src / base / cl_macros.h
index a041e771a017748a0f49d05501811c940075f2c2..30b819cd4b1917ba429c962d97997753760c97bc 100644 (file)
 
 // Bit number n (0<=n<32 or 0<=n<64)
   #ifdef HAVE_FAST_LONGLONG
-    #define bit(n)  (1LL<<(n))
+    #define bit(n)  (long long)(1ULL<<(n))
   #else
-    #define bit(n)  (1L<<(n))
+    #define bit(n)  (long)(1UL<<(n))
   #endif
 // Bit number n (0<n<=32) mod 2^32
   #ifdef HAVE_FAST_LONGLONG
-    #define bitm(n)  (2LL<<((n)-1))
+    #define bitm(n)  (long long)(2ULL<<((n)-1))
   #else
-    #define bitm(n)  (2L<<((n)-1))
+    #define bitm(n)  (long)(2UL<<((n)-1))
   #endif
 // Test bit n in x, n constant, x a cl_uint:
   #if !(defined(__sparc__) || defined(__sparc64__))
   #endif
 // minus bit number n (0<=n<32 or 0<=n<64)
   #ifdef HAVE_FAST_LONGLONG
-    #define minus_bit(n)  (-1LL<<(n))
+    #define minus_bit(n)  (long long)(-1ULL<<(n))
   #else
-    #define minus_bit(n)  (-1L<<(n))
+    #define minus_bit(n)  (long)(-1UL<<(n))
   #endif
 // minus bit number n (0<n<=32) mod 2^32
   #ifdef HAVE_FAST_LONGLONG
-    #define minus_bitm(n)  (-2LL<<((n)-1))
+    #define minus_bitm(n)  (long long)(-2ULL<<((n)-1))
   #else
-    #define minus_bitm(n)  (-2L<<((n)-1))
+    #define minus_bitm(n)  (long)(-2UL<<((n)-1))
   #endif
 
 // Return 2^n, n a constant expression.
 
 // Inside a class definition:
 // Overload `new' so that a class object can be allocated anywhere.
-#if !((defined(__rs6000__) || defined(__alpha__)) && !defined(__GNUC__))
 #define ALLOCATE_ANYWHERE(classname)  \
     /* Ability to place an object at a given address. */               \
 public:                                                                        \
     void* operator new (size_t size) { return malloc_hook(size); }     \
     void* operator new (size_t size, classname* ptr) { unused size; return ptr; } \
     void operator delete (void* ptr) { free_hook(ptr); }
-#else
-// For some compilers, work around template problem with "classname".
-#define ALLOCATE_ANYWHERE(classname)  \
-    /* Ability to place an object at a given address. */               \
-public:                                                                        \
-    void* operator new (size_t size) { return malloc_hook(size); }     \
-    void* operator new (size_t size, void* ptr) { unused size; return ptr; } \
-    void operator delete (void* ptr) { free_hook(ptr); }
-#endif
 
 // init1(type, object) (value);
 // initializes `object' with `value', by calling `type''s constructor.
@@ -265,9 +255,6 @@ public:                                                                     \
 // it's a shame!)
 #define init1(type,lvalue)  (void) new (&(lvalue)) type
 
-// MAYBE_INLINE normally expands to nothing.
-// Useful for including the implementation of some file inline into another.
-  #define MAYBE_INLINE
-  #define MAYBE_INLINE2
+#include "base/cl_maybe_inline.h"
 
 #endif /* _CL_MACROS_H */