summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authormonty@mysql.com/nosik.monty.fi <>2006-11-27 18:16:08 +0200
committermonty@mysql.com/nosik.monty.fi <>2006-11-27 18:16:08 +0200
commit0e149b717029cf5ee5b34b3f7c5249cc534a3e1c (patch)
tree20c7910ad3251fb39027f6528cd4c0524220a1a0 /include
parent313f23a93af801ca368fd5f3123f952ab2b8da68 (diff)
downloadmariadb-git-0e149b717029cf5ee5b34b3f7c5249cc534a3e1c.tar.gz
Removed compiler warnings
Ensure that my_size_t is always unsigned (to get predictiable results from system to system) Removed some %lld, as these are not portable
Diffstat (limited to 'include')
-rw-r--r--include/my_global.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/include/my_global.h b/include/my_global.h
index a7ec41068b3..c182ef7b799 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -869,9 +869,8 @@ typedef long my_ptrdiff_t;
typedef long long my_ptrdiff_t;
#endif
-#if HAVE_SIZE_T
-typedef size_t my_size_t;
-#elif SIZEOF_CHARP <= SIZEOF_LONG
+/* We can't set my_size_t to size_t as we want my_size_t to be unsigned */
+#if SIZEOF_CHARP <= SIZEOF_LONG
typedef unsigned long my_size_t;
#else
typedef unsigned long long my_size_t;
@@ -886,6 +885,22 @@ typedef unsigned long long my_size_t;
#define ADD_TO_PTR(ptr,size,type) (type) ((byte*) (ptr)+size)
#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((byte*) (A) - (byte*) (B))
+/*
+ Custom version of standard offsetof() macro which can be used to get
+ offsets of members in class for non-POD types (according to the current
+ version of C++ standard offsetof() macro can't be used in such cases and
+ attempt to do so causes warnings to be emitted, OTOH in many cases it is
+ still OK to assume that all instances of the class has the same offsets
+ for the same members).
+
+ This is temporary solution which should be removed once File_parser class
+ and related routines are refactored.
+*/
+
+#define my_offsetof(TYPE, MEMBER) \
+ ((size_t)((char *)&(((TYPE *)0x10)->MEMBER) - (char*)0x10))
+
+
#define NullS (char *) 0
/* Nowdays we do not support MessyDos */
#ifndef NEAR