diff options
author | Ash Wolf <ninji@wuffs.org> | 2023-01-11 23:26:04 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2023-01-11 23:26:04 +0000 |
commit | 54bb1363a26b6a52cf1a8ecf1f16f76e9920956f (patch) | |
tree | 53644f3d0a9b24a10275ba723f6e7e43aee00ec9 /includes | |
parent | 0bec4f557a96e1a40437cf5af20cc78a5eec8a63 (diff) | |
download | MWCC-54bb1363a26b6a52cf1a8ecf1f16f76e9920956f.tar.gz MWCC-54bb1363a26b6a52cf1a8ecf1f16f76e9920956f.zip |
get it to compile with clang
Diffstat (limited to '')
-rw-r--r-- | includes/cmdline.h | 2 | ||||
-rw-r--r-- | includes/common.h | 4 | ||||
-rw-r--r-- | includes/compiler/BitVector.h | 2 | ||||
-rw-r--r-- | includes/compiler/CInt64.h | 14 | ||||
-rw-r--r-- | includes/compiler/InlineAsm.h | 6 | ||||
-rw-r--r-- | includes/compiler/IroFlowgraph.h | 10 | ||||
-rw-r--r-- | includes/compiler/IroUtil.h | 6 | ||||
-rw-r--r-- | includes/compiler/objects.h | 2 | ||||
-rw-r--r-- | includes/oslib.h | 1 |
9 files changed, 26 insertions, 21 deletions
diff --git a/includes/cmdline.h b/includes/cmdline.h index 6c39423..e9d3726 100644 --- a/includes/cmdline.h +++ b/includes/cmdline.h @@ -119,7 +119,7 @@ enum { CLStr112 = 112 }; -#define DO_INTERNAL_ERROR(...) CLInternalError(__FILE__, __LINE__, __VA_ARGS__) +#define DO_INTERNAL_ERROR(line, ...) CLInternalError(__FILE__, line, __VA_ARGS__) #ifdef __MWERKS__ #pragma options align=mac68k diff --git a/includes/common.h b/includes/common.h index 5bbb017..ba9b54c 100644 --- a/includes/common.h +++ b/includes/common.h @@ -28,10 +28,14 @@ #define alloca(x) __alloca(x) +#define CW_INLINE inline + #else #include <stdarg.h> // expand this to nothing #define CW_PASCAL + +#define CW_INLINE static inline #endif // ---------- diff --git a/includes/compiler/BitVector.h b/includes/compiler/BitVector.h index 724bb8f..a6830d6 100644 --- a/includes/compiler/BitVector.h +++ b/includes/compiler/BitVector.h @@ -23,7 +23,7 @@ extern void Bv_Set(BitVector *bv); extern Boolean Bv_IsSubset(const BitVector *a, const BitVector *b); extern Boolean Bv_IsEmpty(const BitVector *bv); -inline void Bv_SetBit(UInt32 bit, BitVector *bv) { +CW_INLINE void Bv_SetBit(UInt32 bit, BitVector *bv) { if ((bit / 32) < bv->size) { bv->data[bit / 32] |= 1 << (bit & 31); } else { diff --git a/includes/compiler/CInt64.h b/includes/compiler/CInt64.h index a0938e2..663168a 100644 --- a/includes/compiler/CInt64.h +++ b/includes/compiler/CInt64.h @@ -10,33 +10,33 @@ extern const CInt64 cint64_one; extern const CInt64 cint64_max; extern const CInt64 cint64_min; -inline Boolean CInt64_IsNegative(const CInt64 *n) { +CW_INLINE Boolean CInt64_IsNegative(const CInt64 *n) { return (n->hi & 0x80000000) != 0; } -inline UInt32 CInt64_GetULong(const CInt64 *n) { // 42E660 in mwcppc.exe +CW_INLINE UInt32 CInt64_GetULong(const CInt64 *n) { // 42E660 in mwcppc.exe return n->lo; } -inline void CInt64_SetLong(CInt64 *pN, SInt32 n) { +CW_INLINE void CInt64_SetLong(CInt64 *pN, SInt32 n) { pN->lo = n; pN->hi = (n < 0) ? 0xFFFFFFFF : 0; } -inline void CInt64_SetULong(CInt64 *pN, UInt32 n) { +CW_INLINE void CInt64_SetULong(CInt64 *pN, UInt32 n) { pN->lo = n; pN->hi = 0; } -inline Boolean CInt64_IsZero(CInt64 *n) { +CW_INLINE Boolean CInt64_IsZero(CInt64 *n) { //if (n->hi == 0 && n->lo == 0) // return 1; //else // return 0; return n->hi == 0 && n->lo == 0; } -inline Boolean CInt64_IsOne(CInt64 *n) { // assumed name +CW_INLINE Boolean CInt64_IsOne(CInt64 *n) { // assumed name return n->hi == 0 && n->lo == 1; } -inline void CInt64_Extend32(CInt64 *n) { // assumed name +CW_INLINE void CInt64_Extend32(CInt64 *n) { // assumed name n->hi = (n->lo >> 31) ? 0xFFFFFFFF : 0; } diff --git a/includes/compiler/InlineAsm.h b/includes/compiler/InlineAsm.h index ca0032e..7c07b23 100644 --- a/includes/compiler/InlineAsm.h +++ b/includes/compiler/InlineAsm.h @@ -211,7 +211,7 @@ extern Object *InlineAsm_GetObjectOffset(InlineAsm *ia, SInt32 index, SInt32 *of extern char *InlineAsm_DumpStatement(Statement *stmt); // unknown name -inline void InlineAsm_InitExpr5(IAExpr *expr, SInt32 value) { +CW_INLINE void InlineAsm_InitExpr5(IAExpr *expr, SInt32 value) { expr->type = IAExpr_5; expr->flags = 0; expr->value = value; @@ -224,12 +224,12 @@ inline void InlineAsm_InitExpr5(IAExpr *expr, SInt32 value) { } // unknown name -inline int InlineAsm_CheckExpr(IAExpr *expr) { +CW_INLINE int InlineAsm_CheckExpr(IAExpr *expr) { return (expr->xC == NULL && expr->object == NULL && expr->label == NULL); } // unknown name -inline SInt32 InlineAsm_GetExprValue(IAExpr *expr) { +CW_INLINE SInt32 InlineAsm_GetExprValue(IAExpr *expr) { switch (expr->type) { case IAExpr_8: return HIGH_PART(expr->value); diff --git a/includes/compiler/IroFlowgraph.h b/includes/compiler/IroFlowgraph.h index 98b6110..90e696c 100644 --- a/includes/compiler/IroFlowgraph.h +++ b/includes/compiler/IroFlowgraph.h @@ -62,20 +62,20 @@ extern void IRO_BuildFlowgraph(IROLinear *linear); extern IRONode *IRO_NewFlowGraphNode(void); extern IRONode *IRO_MergeFlowGraphNodes(IRONode *a, IRONode *b); -inline void IROFlowgraph_sub_4C2140(IRONodes *nodes) { +CW_INLINE void IROFlowgraph_sub_4C2140(IRONodes *nodes) { nodes->indices = oalloc(sizeof(UInt16) * IRO_NumNodes); nodes->num = 0; nodes->base = 0; } -inline void IROFlowgraph_sub_4C20E0(IRONodes *nodes) { +CW_INLINE void IROFlowgraph_sub_4C20E0(IRONodes *nodes) { } -inline UInt16 IROFlowgraph_sub_4C2040(IRONodes *nodes) { +CW_INLINE UInt16 IROFlowgraph_sub_4C2040(IRONodes *nodes) { return nodes->num; } -inline UInt16 IROFlowgraph_sub_4C2100(IRONodes *nodes) { +CW_INLINE UInt16 IROFlowgraph_sub_4C2100(IRONodes *nodes) { UInt16 result = -1; if (nodes->num) { result = nodes->indices[nodes->base]; @@ -85,7 +85,7 @@ inline UInt16 IROFlowgraph_sub_4C2100(IRONodes *nodes) { return result; } -inline void IROFlowgraph_sub_4C3880(IRONodes *nodes, UInt16 index) { +CW_INLINE void IROFlowgraph_sub_4C3880(IRONodes *nodes, UInt16 index) { if (nodes->num < IRO_NumNodes) { nodes->indices[(nodes->base + nodes->num) % IRO_NumNodes] = index; nodes->num++; diff --git a/includes/compiler/IroUtil.h b/includes/compiler/IroUtil.h index 502d0cd..a757025 100644 --- a/includes/compiler/IroUtil.h +++ b/includes/compiler/IroUtil.h @@ -106,19 +106,19 @@ extern void IRO_SetupForUserBreakChecking(void); extern void IRO_CheckForUserBreak(void); // TODO is this elsewhere? -inline Boolean IRO_IsUnsignedType(Type *type) { +CW_INLINE Boolean IRO_IsUnsignedType(Type *type) { return is_unsigned(type); } // 4B4D40 -inline CInt64 IRO_MakeULong(UInt32 i) { +CW_INLINE CInt64 IRO_MakeULong(UInt32 i) { CInt64 val; CInt64_SetULong(&val, i); return val; } // 4BAAA0 -inline CInt64 IRO_MakeLong(SInt32 i) { +CW_INLINE CInt64 IRO_MakeLong(SInt32 i) { CInt64 val; CInt64_SetLong(&val, i); return val; diff --git a/includes/compiler/objects.h b/includes/compiler/objects.h index 2209dee..5f56877 100644 --- a/includes/compiler/objects.h +++ b/includes/compiler/objects.h @@ -235,7 +235,7 @@ enum { // placing these here until further notice // unknown name, mwcppc.exe 7.0: 484870 -inline Boolean Inline_IsObjectData(Object *object) { +CW_INLINE Boolean Inline_IsObjectData(Object *object) { return object->datatype == DDATA; } diff --git a/includes/oslib.h b/includes/oslib.h index d5be38e..3c8d88c 100644 --- a/includes/oslib.h +++ b/includes/oslib.h @@ -10,6 +10,7 @@ */ #define OPTION_ASSERT(cond) do { if (!!(cond) == 0) { printf("%s:%u: failed assertion\n", __FILE__, __LINE__); abort(); } } while(0) +#define OS_ASSERT(line, cond) do { if (!!(cond) == 0) { printf("%s:%u: failed assertion\n", __FILE__, line); abort(); } } while(0) typedef struct uOSTypePair { int perm; |