mirror of
https://github.com/zeldaret/oot
synced 2026-07-07 22:11:24 -04:00
Use __builtin_offsetof for non IDO builds (#1140)
* Add offsetof macro * Change old uses of OFFSETOF with offsetof
This commit is contained in:
+3
-1
@@ -1,6 +1,8 @@
|
||||
#ifndef ICHAIN_H
|
||||
#define ICHAIN_H
|
||||
|
||||
#include "libc/stddef.h"
|
||||
|
||||
typedef struct {
|
||||
u32 cont: 1;
|
||||
u32 type: 4;
|
||||
@@ -36,7 +38,7 @@ typedef enum {
|
||||
* * cont ----- ICHAIN_CONTINUE (or ICHAIN_STOP) to continue (or stop) parsing
|
||||
*/
|
||||
#define ICHAIN(type, member, value, cont) \
|
||||
{ cont, type, OFFSETOF(Actor, member), value }
|
||||
{ cont, type, offsetof(Actor, member), value }
|
||||
|
||||
#define ICHAIN_U8(member, val, cont) ICHAIN(ICHAINTYPE_U8, member, val, cont)
|
||||
#define ICHAIN_S8(member, val, cont) ICHAIN(ICHAINTYPE_S8, member, val, cont)
|
||||
|
||||
@@ -7,4 +7,10 @@ typedef unsigned long size_t;
|
||||
|
||||
typedef unsigned int uintptr_t;
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define offsetof(structure, member) __builtin_offsetof (structure, member)
|
||||
#else
|
||||
#define offsetof(structure, member) ((size_t)&(((structure*)0)->member))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) (u32)((u8*)(addr) - 0x80000000)
|
||||
#define SEGMENTED_TO_VIRTUAL(addr) PHYSICAL_TO_VIRTUAL(gSegments[SEGMENT_NUMBER(addr)] + SEGMENT_OFFSET(addr))
|
||||
|
||||
#define OFFSETOF(structure, member) ((size_t)&(((structure*)0)->member))
|
||||
|
||||
#define SQ(x) ((x)*(x))
|
||||
#define ABS(x) ((x) >= 0 ? (x) : -(x))
|
||||
#define DECR(x) ((x) == 0 ? 0 : --(x))
|
||||
|
||||
Reference in New Issue
Block a user