Merge pull request #3979 from radical/fix-xbuild-tgt
[mono.git] / mono / metadata / abi-details.h
index 4ec7fc96ec635102871ff065e0de0d780acfd2df..3f61191b3146cbdf38a3cac5aabd935bc63152ae 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright 2014 Xamarin Inc
+ * Licensed under the MIT license. See LICENSE file in the project root for full license information.
  */
 #ifndef __MONO_METADATA_ABI_DETAILS_H__
 #define __MONO_METADATA_ABI_DETAILS_H__
@@ -8,7 +9,8 @@
 #include <glib.h>
 
 #define MONO_ABI_ALIGNOF(type) MONO_ALIGN_ ## type
-#define MONO_CURRENT_ABI_ALIGNOF(type) ((int)G_STRUCT_OFFSET(struct { char c; type x; }, x))
+#define MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(type) typedef struct { char c; type x; } Mono_Align_Struct_ ##type;
+#define MONO_CURRENT_ABI_ALIGNOF(type) ((int)G_STRUCT_OFFSET(Mono_Align_Struct_ ##type, x))
 #define MONO_ABI_SIZEOF(type) MONO_SIZEOF_ ## type
 #define MONO_CURRENT_ABI_SIZEOF(type) ((int)sizeof(type))
 
 #define DECL_SIZE(type) MONO_SIZEOF_ ##type = MONO_CURRENT_ABI_SIZEOF (type),
 #define DECL_SIZE2(type,size) MONO_SIZEOF_ ##type = size,
 
+/* Needed by MONO_CURRENT_ABI_ALIGNOF */
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(gint8)
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(gint16)
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(gint32)
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(gint64)
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(float)
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(double)
+MONO_CURRENT_ABI_ALIGNOF_TYPEDEF(gpointer)
+
 enum {
 #include "object-offsets.h"
 };