From 54bb1363a26b6a52cf1a8ecf1f16f76e9920956f Mon Sep 17 00:00:00 2001 From: Ash Wolf Date: Wed, 11 Jan 2023 23:26:04 +0000 Subject: get it to compile with clang --- command_line/CmdLine/Src/CLBrowser.c | 10 +- command_line/CmdLine/Src/CLDependencies.c | 6 +- command_line/CmdLine/Src/CLFileOps.c | 24 +- command_line/CmdLine/Src/CLPluginRequests.cpp | 3 +- command_line/CmdLine/Src/CLPrefs.c | 3 +- command_line/CmdLine/Src/CLTarg.c | 9 +- command_line/CmdLine/Src/CLToolExec.c | 6 +- command_line/CmdLine/Src/CLWriteObjectFile.c | 3 +- .../Src/Callbacks/CLCompilerLinkerDropin_V10.cpp | 33 +- .../Src/Callbacks/CLDropinCallbacks_V10.cpp | 27 +- command_line/CmdLine/Src/Envir/CLIO.c | 16 +- command_line/CmdLine/Src/MacEmul/Files.c | 3 +- command_line/CmdLine/Src/MacEmul/Resources.c | 13 +- command_line/CmdLine/Src/OSLib/Generic.c | 2 +- command_line/CmdLine/Src/OSLib/MacFileTypes.c | 3 +- command_line/CmdLine/Src/OSLib/MacSpecs.c | 6 +- command_line/CmdLine/Src/OSLib/StringUtils.c | 3 +- command_line/CmdLine/Src/Plugins/CLPlugins.c | 54 +-- command_line/CmdLine/Src/Project/CLAccessPaths.c | 49 +-- command_line/CmdLine/Src/Project/CLFiles.c | 19 +- command_line/CmdLine/Src/Project/CLOverlays.c | 67 ++-- command_line/CmdLine/Src/Project/CLProj.c | 3 +- command_line/CmdLine/Src/Project/CLSegs.c | 21 +- compiler_and_linker/FrontEnd/C/CScope.c | 4 +- compiler_and_linker/unsorted/CExprConvMatch.c | 4 +- compiler_and_linker/unsorted/CInline.c | 2 +- compiler_and_linker/unsorted/CSOM.c | 2 +- compiler_and_linker/unsorted/InlineAsmPPC.c | 2 +- compiler_and_linker/unsorted/IroLinearForm.c | 2 +- .../unsorted/IroPointerAnalysisADTs.c | 416 ++++++++++----------- compiler_and_linker/unsorted/IroUtil.c | 2 +- includes/cmdline.h | 2 +- includes/common.h | 4 + includes/compiler/BitVector.h | 2 +- includes/compiler/CInt64.h | 14 +- includes/compiler/InlineAsm.h | 6 +- includes/compiler/IroFlowgraph.h | 10 +- includes/compiler/IroUtil.h | 6 +- includes/compiler/objects.h | 2 +- includes/oslib.h | 1 + sdk_hdrs/CWPlugins.h | 2 +- unsorted/Arguments.c | 3 +- unsorted/Option.c | 6 +- unsorted/Parameter.c | 3 +- unsorted/ParserHelpers-cc.c | 6 +- unsorted/Targets.c | 3 +- 46 files changed, 386 insertions(+), 501 deletions(-) diff --git a/command_line/CmdLine/Src/CLBrowser.c b/command_line/CmdLine/Src/CLBrowser.c index 826d395..2679e52 100644 --- a/command_line/CmdLine/Src/CLBrowser.c +++ b/command_line/CmdLine/Src/CLBrowser.c @@ -75,9 +75,8 @@ int Browser_SearchFile(OSHandle *browsetable, const char *fullpath, SInt16 *ID) SInt32 size; Boolean found = 0; -#line 114 - OPTION_ASSERT(OS_IsFullPath(fullpath)); - OPTION_ASSERT(browsetable!=NULL); + OS_ASSERT(114, OS_IsFullPath(fullpath)); + OS_ASSERT(115, browsetable!=NULL); GetBrowseTableInfoAndLock(browsetable, &scan, &cnt, &size); for (idx = 0; idx < cnt; idx++) { @@ -167,9 +166,8 @@ int Browser_PackBrowseFile(Handle browsedata, OSHandle *browsetable, OSHandle *b int err; void *bptr; -#line 253 - OPTION_ASSERT(browsedata!=NULL); - OPTION_ASSERT(browsetable!=NULL); + OS_ASSERT(253, browsedata!=NULL); + OS_ASSERT(254, browsetable!=NULL); datasize = GetHandleSize(browsedata); tableoffs = (datasize + sizeof(header) + 7) & ~7; diff --git a/command_line/CmdLine/Src/CLDependencies.c b/command_line/CmdLine/Src/CLDependencies.c index 6590257..724141a 100644 --- a/command_line/CmdLine/Src/CLDependencies.c +++ b/command_line/CmdLine/Src/CLDependencies.c @@ -99,8 +99,7 @@ static Boolean FindFileInPaths(Paths *paths, const char *filename, Path **thepat for (idx = 0; idx < Paths_Count(paths); idx++) { path = Paths_GetPath(paths, idx); -#line 175 - OPTION_ASSERT(path); + OS_ASSERT(175, path); if (_FindFileInPath(path, filename, thepath, spec)) return 1; } @@ -263,8 +262,7 @@ int Deps_ChangeSpecialAccessPath(OSSpec *srcfss, Boolean initialize) { } break; default: -#line 468 - DO_INTERNAL_ERROR("Unhandled include file search type (%d)\n", optsCompiler.includeSearch); + DO_INTERNAL_ERROR(468, "Unhandled include file search type (%d)\n", optsCompiler.includeSearch); } specialAccessPath = FindOrAddGlobalInclPath(gTarg->incls.allPaths, pathspecptr); diff --git a/command_line/CmdLine/Src/CLFileOps.c b/command_line/CmdLine/Src/CLFileOps.c index be3c00c..a5976be 100644 --- a/command_line/CmdLine/Src/CLFileOps.c +++ b/command_line/CmdLine/Src/CLFileOps.c @@ -415,8 +415,7 @@ static int CompileEntry(File *file, Boolean *compiled) { return 1; } -#line 835 - OPTION_ASSERT(file->compiler); + OS_ASSERT(835, file->compiler); *compiled = 1; beginWork = OS_GetMilliseconds(); @@ -471,8 +470,7 @@ static void DumpFileAndPathInfo(void) { } else { for (i = 0; i < n; i++) { Path *path = Paths_GetPath(&FrameworkPaths, i); -#line 961 - OPTION_ASSERT(path != NULL); + OS_ASSERT(961, path != NULL); CLReport(85, OS_PathSpecToString(path->spec, STSbuf, sizeof(STSbuf)), @@ -483,8 +481,7 @@ static void DumpFileAndPathInfo(void) { UInt16 j; for (j = 0; j < Paths_Count(path->recursive); j++) { Path *sub = Paths_GetPath(path->recursive, j); -#line 976 - OPTION_ASSERT(sub); + OS_ASSERT(976, sub); CLReport(85, "\t", OS_PathSpecToString(sub->spec, STSbuf, sizeof(STSbuf))); } } @@ -497,8 +494,7 @@ static void DumpFileAndPathInfo(void) { for (i = 0; i < n; i++) { char version[80]; Paths_FWInfo *info = Frameworks_GetInfo(i); -#line 993 - OPTION_ASSERT(info); + OS_ASSERT(993, info); version[0] = 0; strcpy(version, "\t("); @@ -522,8 +518,7 @@ static void DumpFileAndPathInfo(void) { } else { for (i = 0; i < Paths_Count(&gTarg->userPaths); i++) { Path *path = Paths_GetPath(&gTarg->userPaths, i); -#line 1024 - OPTION_ASSERT(path != NULL); + OS_ASSERT(1024, path != NULL); CLReport(85, OS_PathSpecToString(path->spec, STSbuf, sizeof(STSbuf)), @@ -534,8 +529,7 @@ static void DumpFileAndPathInfo(void) { UInt16 j; for (j = 0; j < Paths_Count(path->recursive); j++) { Path *sub = Paths_GetPath(path->recursive, j); -#line 1039 - OPTION_ASSERT(sub); + OS_ASSERT(1039, sub); CLReport(85, "\t", OS_PathSpecToString(sub->spec, STSbuf, sizeof(STSbuf))); } } @@ -550,8 +544,7 @@ static void DumpFileAndPathInfo(void) { for (i = 0; i < Paths_Count(&gTarg->sysPaths); i++) { Path *path = Paths_GetPath(&gTarg->sysPaths, i); -#line 1054 - OPTION_ASSERT(path != NULL); + OS_ASSERT(1054, path != NULL); CLReport(85, OS_PathSpecToString(path->spec, STSbuf, sizeof(STSbuf)), @@ -562,8 +555,7 @@ static void DumpFileAndPathInfo(void) { UInt16 j; for (j = 0; j < Paths_Count(path->recursive); j++) { Path *sub = Paths_GetPath(path->recursive, j); -#line 1069 - OPTION_ASSERT(sub); + OS_ASSERT(1069, sub); CLReport(85, "\t", OS_PathSpecToString(sub->spec, STSbuf, sizeof(STSbuf))); } } diff --git a/command_line/CmdLine/Src/CLPluginRequests.cpp b/command_line/CmdLine/Src/CLPluginRequests.cpp index 9de50ba..dc11d18 100644 --- a/command_line/CmdLine/Src/CLPluginRequests.cpp +++ b/command_line/CmdLine/Src/CLPluginRequests.cpp @@ -218,8 +218,7 @@ Boolean SendTargetInfoRequest(Target *targ, Plugin *linker, SInt32 dropinflags) if (linker && !(dropinflags & dropInExecutableTool)) { if (optsCmdLine.verbose > 1) CLReport(CLStr50, Plugin_GetDropInName(linker)); -#line 298 - OPTION_ASSERT(Plugin_GetPluginType(linker) == CWDROPINLINKERTYPE); + OS_ASSERT(298, Plugin_GetPluginType(linker) == CWDROPINLINKERTYPE); if (!Plugin_VerifyPanels(linker)) return 0; diff --git a/command_line/CmdLine/Src/CLPrefs.c b/command_line/CmdLine/Src/CLPrefs.c index dba6dd8..b825c4a 100644 --- a/command_line/CmdLine/Src/CLPrefs.c +++ b/command_line/CmdLine/Src/CLPrefs.c @@ -42,8 +42,7 @@ Handle PrefPanel_GetHandle(PrefPanel *panel) { else SetHandleSize(panel->workHandle, len); -#line 60 - OPTION_ASSERT(MemError()==noErr); + OS_ASSERT(60, MemError()==noErr); HLock(panel->data); HLock(panel->workHandle); diff --git a/command_line/CmdLine/Src/CLTarg.c b/command_line/CmdLine/Src/CLTarg.c index a3f4389..6a1782a 100644 --- a/command_line/CmdLine/Src/CLTarg.c +++ b/command_line/CmdLine/Src/CLTarg.c @@ -13,12 +13,9 @@ Target *Target_New(const char *name, OSType cpu, OSType os, OSType lang) { OS_GetCWD(&targ->outputDirectory); -#line 25 - OPTION_ASSERT(Segments_Initialize(&targ->linkage.segs)); -#line 28 - OPTION_ASSERT(Overlays_Initialize(&targ->linkage.overlays)); -#line 35 - OPTION_ASSERT(Files_Initialize(&targ->files) && Files_Initialize(&targ->pchs) && VFiles_Initialize(&targ->virtualFiles) && + OS_ASSERT(25, Segments_Initialize(&targ->linkage.segs)); + OS_ASSERT(28, Overlays_Initialize(&targ->linkage.overlays)); + OS_ASSERT(35, Files_Initialize(&targ->files) && Files_Initialize(&targ->pchs) && VFiles_Initialize(&targ->virtualFiles) && Paths_Initialize(&targ->sysPaths) && Paths_Initialize(&targ->userPaths) && Incls_Initialize(&targ->incls, targ)); return targ; diff --git a/command_line/CmdLine/Src/CLToolExec.c b/command_line/CmdLine/Src/CLToolExec.c index 9bc4213..cbd1a91 100644 --- a/command_line/CmdLine/Src/CLToolExec.c +++ b/command_line/CmdLine/Src/CLToolExec.c @@ -46,8 +46,7 @@ static int SetupLinkerCommandLine(SInt32 dropinflags, File *file, CWCommandLineA break; } -#line 89 - OPTION_ASSERT(x < numPlugins); + OS_ASSERT(89, x < numPlugins); args->argc = 1; args->argv = xmalloc("command-line arguments", 2 * sizeof(char *)); @@ -150,8 +149,7 @@ int ExecuteLinker(Plugin *plugin, SInt32 dropinflags, File *file, char *stdoutfi int x; // TODO rename this flag to isExecutableTool -#line 269 - OPTION_ASSERT(dropinflags & dropInExecutableTool); + OS_ASSERT(269, dropinflags & dropInExecutableTool); args.argc = 0; args.argv = args.envp = NULL; diff --git a/command_line/CmdLine/Src/CLWriteObjectFile.c b/command_line/CmdLine/Src/CLWriteObjectFile.c index 6e92114..22028dc 100644 --- a/command_line/CmdLine/Src/CLWriteObjectFile.c +++ b/command_line/CmdLine/Src/CLWriteObjectFile.c @@ -6,8 +6,7 @@ int WriteObjectFile(File *file, OSType maccreator, OSType mactype) { FSSpec srcfss; FSSpec outfss; -#line 22 - OPTION_ASSERT(file->objectdata && file->compiler); + OS_ASSERT(22, file->objectdata && file->compiler); OS_OSSpec_To_FSSpec(&file->outfss, &outfss); OS_OSSpec_To_FSSpec(&file->srcfss, &srcfss); diff --git a/command_line/CmdLine/Src/Callbacks/CLCompilerLinkerDropin_V10.cpp b/command_line/CmdLine/Src/Callbacks/CLCompilerLinkerDropin_V10.cpp index 070bc07..3804b93 100644 --- a/command_line/CmdLine/Src/Callbacks/CLCompilerLinkerDropin_V10.cpp +++ b/command_line/CmdLine/Src/Callbacks/CLCompilerLinkerDropin_V10.cpp @@ -52,10 +52,8 @@ CWResult UCBStoreObjectData(CWPluginContext context, SInt32 whichfile, CWObjectD UCBSecretAttachHandle(context, objecthand, &object->objectdata); UCBSecretAttachHandle(context, browsehand, &object->browsedata); } else { - if (filedata->outfileowner && filedata->outfileowner != CmdLineStageMask_Cg) { -#line 240 - DO_INTERNAL_ERROR("Cannot store object file spec for '%s'\n", filedata->srcfilename); - } + if (filedata->outfileowner && filedata->outfileowner != CmdLineStageMask_Cg) + DO_INTERNAL_ERROR(240, "Cannot store object file spec for '%s'\n", filedata->srcfilename); OS_FSSpec_To_OSSpec(object->objectfile, &filedata->outfss); filedata->wroteToDisk |= CmdLineStageMask_Cg; } @@ -134,8 +132,7 @@ CWResult UCBBeginSubCompile(CWPluginContext context, SInt32 whichfile, CWPluginC if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBBeginSubCompile"); -#line 372 - DO_INTERNAL_ERROR("UCBBeginSubCompile not implemented"); + DO_INTERNAL_ERROR(372, "UCBBeginSubCompile not implemented"); return cwErrRequestFailed; } @@ -143,8 +140,7 @@ CWResult UCBEndSubCompile(CWPluginContext subContext) { if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBEndSubCompile"); -#line 384 - DO_INTERNAL_ERROR("UCBEndSubCompile not implemented"); + DO_INTERNAL_ERROR(384, "UCBEndSubCompile not implemented"); return cwErrRequestFailed; } @@ -165,8 +161,7 @@ CWResult UCBGetPrecompiledHeaderSpec(CWPluginContext context, CWFileSpec *pchspe return cwErrInvalidCallback; file = Files_GetFile(&gTarg->files, c->whichfile); -#line 420 - OPTION_ASSERT(file != NULL); + OS_ASSERT(420, file != NULL); cof = Plugin_CL_GetObjectFlags(file->compiler); if (!file->outfilename[0]) { @@ -222,8 +217,7 @@ CWResult UCBGetResourceFile(CWPluginContext context, CWFileSpec *filespec) { if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBGetResourceFile"); -#line 514 - DO_INTERNAL_ERROR("UCBGetResourceFile not implemented"); + DO_INTERNAL_ERROR(514, "UCBGetResourceFile not implemented"); return cwErrRequestFailed; } @@ -231,8 +225,7 @@ CWResult UCBPutResourceFile(CWPluginContext context, const char *prompt, const c if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBPutResourceFile"); -#line 529 - DO_INTERNAL_ERROR("UCBPutResourceFile not implemented"); + DO_INTERNAL_ERROR(529, "UCBPutResourceFile not implemented"); return cwErrRequestFailed; } @@ -270,8 +263,7 @@ CWResult UCBLookUpUnit(CWPluginContext context, const char *name, Boolean isdepe return cwErrInvalidCallback; srcfile = Files_GetFile(&gTarg->files, c->whichfile); -#line 591 - OPTION_ASSERT(srcfile != NULL); + OS_ASSERT(591, srcfile != NULL); *unitdata = NULL; *unitdatalength = 0; @@ -403,8 +395,7 @@ CWResult UCBStoreUnit(CWPluginContext context, const char *inunitname, CWMemHand return cwErrInvalidCallback; srcfile = Files_GetFile(&gTarg->files, c->whichfile); -#line 791 - OPTION_ASSERT(srcfile != NULL); + OS_ASSERT(791, srcfile != NULL); if (optsCompiler.sbmPath[0]) { err = OS_MakeSpecWithPath(&clState.sbmPathSpec, unitname, 1, &sbmspec); @@ -510,8 +501,7 @@ CWResult UCBGetModifiedFiles(CWPluginContext context, SInt32 *modifiedFileCount, CLPrint("Callback: %s\n", "UCBGetModifiedFiles"); *modifiedFileCount = 0; -#line 949 - DO_INTERNAL_ERROR("CWGetModifiedFiles not implemented!\n"); + DO_INTERNAL_ERROR(949, "CWGetModifiedFiles not implemented!\n"); return cwNoErr; } @@ -538,8 +528,7 @@ CWResult UCBGetStoredObjectFileSpec(CWPluginContext context, SInt32 whichfile, C if (!(file = Files_GetFile(&gTarg->files, whichfile))) return cwErrUnknownFile; if (file->outfileowner != CmdLineStageMask_Cg) { -#line 993 - DO_INTERNAL_ERROR("Lost stored object file spec for '%s'\n", file->srcfilename); + DO_INTERNAL_ERROR(993, "Lost stored object file spec for '%s'\n", file->srcfilename); return cwErrRequestFailed; } else { OS_OSSpec_To_FSSpec(&file->outfss, fileSpec); diff --git a/command_line/CmdLine/Src/Callbacks/CLDropinCallbacks_V10.cpp b/command_line/CmdLine/Src/Callbacks/CLDropinCallbacks_V10.cpp index ed02965..24eaf83 100644 --- a/command_line/CmdLine/Src/Callbacks/CLDropinCallbacks_V10.cpp +++ b/command_line/CmdLine/Src/Callbacks/CLDropinCallbacks_V10.cpp @@ -203,8 +203,7 @@ static Boolean FindAndLoad_MissingFile(CWPluginContext context, const char *file return 0; file = Files_GetFile(&gTarg->files, c->whichfile); -#line 486 - OPTION_ASSERT(file != NULL); + OS_ASSERT(486, file != NULL); OS_MakeSpecWithPath(&file->srcfss.path, filename, 1, spec); Deps_AddDependency(&file->deps, -1, spec, !fileinfo->fullsearch && !optsCompiler.noSysPath, fileinfo->dependencyType, &fileinfo->alreadyincluded); @@ -638,8 +637,7 @@ CWResult UCBStorePluginData(CWPluginContext context, SInt32 whichfile, CWDataTyp if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBStorePluginData"); -#line 1267 - DO_INTERNAL_ERROR("UCBStorePluginData not implemented"); + DO_INTERNAL_ERROR(1267, "UCBStorePluginData not implemented"); return cwErrRequestFailed; } @@ -647,8 +645,7 @@ CWResult UCBGetPluginData(CWPluginContext context, SInt32 whichfile, CWDataType if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBGetPluginData"); -#line 1286 - DO_INTERNAL_ERROR("UCBGetPluginData not implemented"); + DO_INTERNAL_ERROR(1286, "UCBGetPluginData not implemented"); return cwErrRequestFailed; } @@ -951,8 +948,7 @@ CWResult UCBCreateNewTextDocument(CWPluginContext context, const CWNewTextDocume return cwErrRequestFailed; } } else { -#line 1755 - DO_INTERNAL_ERROR("Cannot deal with unexpected document"); + DO_INTERNAL_ERROR(1755, "Cannot deal with unexpected document"); return cwErrInvalidCallback; } } @@ -1062,8 +1058,7 @@ CWResult UCBPreFileAction(CWPluginContext context, const CWFileSpec *theFile) { if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBPreFileAction"); -#line 1963 - DO_INTERNAL_ERROR("UCBPreFileAction not implemented"); + DO_INTERNAL_ERROR(1963, "UCBPreFileAction not implemented"); return cwErrRequestFailed; } @@ -1071,8 +1066,7 @@ CWResult UCBPostFileAction(CWPluginContext context, const CWFileSpec *theFile) { if (optsCmdLine.verbose > 3) CLPrint("Callback: %s\n", "UCBPostFileAction"); -#line 1977 - DO_INTERNAL_ERROR("UCBPostFileAction not implemented"); + DO_INTERNAL_ERROR(1977, "UCBPostFileAction not implemented"); return cwErrRequestFailed; } @@ -1100,8 +1094,7 @@ CWResult UCBCacheAccessPathList(CWPluginContext context) { for (x = 0; x < apl->userPathCount; x++) { ap = &apl->userPaths[x]; path = Paths_GetPath(&gTarg->userPaths, x); -#line 2010 - OPTION_ASSERT(path); + OS_ASSERT(2010, path); OS_MakeSpecWithPath(path->spec, NULL, 0, &spec); OS_OSSpec_To_FSSpec(&spec, &ap->pathSpec); @@ -1132,8 +1125,7 @@ CWResult UCBCacheAccessPathList(CWPluginContext context) { for (x = 0; x < apl->systemPathCount; x++) { ap = &apl->systemPaths[x]; path = Paths_GetPath(&gTarg->sysPaths, x); -#line 2044 - OPTION_ASSERT(path); + OS_ASSERT(2044, path); OS_MakeSpecWithPath(path->spec, NULL, 0, &spec); OS_OSSpec_To_FSSpec(&spec, &ap->pathSpec); @@ -1208,8 +1200,7 @@ CWResult UCBCheckinLicense(CWPluginContext context, SInt32 cookie) { } CWResult UCBResolveRelativePath(CWPluginContext context, const CWRelativePath *relativePath, CWFileSpec *fileSpec, Boolean create) { -#line 2255 - DO_INTERNAL_ERROR("UCBResolveRelativePath not implemented"); + DO_INTERNAL_ERROR(2255, "UCBResolveRelativePath not implemented"); return cwErrRequestFailed; } diff --git a/command_line/CmdLine/Src/Envir/CLIO.c b/command_line/CmdLine/Src/Envir/CLIO.c index 0c07eaf..1d6eaad 100644 --- a/command_line/CmdLine/Src/Envir/CLIO.c +++ b/command_line/CmdLine/Src/Envir/CLIO.c @@ -258,7 +258,7 @@ typedef struct { } UnkCLIOStruct; // unknown names for these inlines -inline void appendText(UnkCLIOStruct *f, const char *str) { +CW_INLINE void appendText(UnkCLIOStruct *f, const char *str) { int len = strlen(str); if (f->pos + len >= f->maxlen) { @@ -278,7 +278,7 @@ inline void appendText(UnkCLIOStruct *f, const char *str) { f->pos += len; f->col += len; } -inline void appendChar(UnkCLIOStruct *f, char c) { +CW_INLINE void appendChar(UnkCLIOStruct *f, char c) { if (f->pos >= f->maxlen) { f->maxlen *= 2; if (f->original) { @@ -301,7 +301,7 @@ static void StartLine(UnkCLIOStruct *f) { appendText(f, f->newline); } -inline void newLine(UnkCLIOStruct *f) { +CW_INLINE void newLine(UnkCLIOStruct *f) { if (f->newline) appendChar(f, '\n'); else @@ -424,14 +424,12 @@ void CLPrintDispatch(int unk, SInt16 msgtype, const char *message) { const char *ptr; const char *nptr; - if (optsCmdLine.stderr2stdout == 1 || msgtype == Msg_Note || msgtype == Msg_Status) { + if (optsCmdLine.stderr2stdout == 1 || msgtype == Msg_Note || msgtype == Msg_Status) out = stdout; - } else if (msgtype == Msg_Warning || msgtype == Msg_Error || msgtype == Msg_Alert) { + else if (msgtype == Msg_Warning || msgtype == Msg_Error || msgtype == Msg_Alert) out = stderr; - } else { -#line 847 - OPTION_ASSERT(0); - } + else + OS_ASSERT(847, 0); if (!printedAnything && !ioPiping) { printedAnything = 1; diff --git a/command_line/CmdLine/Src/MacEmul/Files.c b/command_line/CmdLine/Src/MacEmul/Files.c index a613b4a..02760e7 100644 --- a/command_line/CmdLine/Src/MacEmul/Files.c +++ b/command_line/CmdLine/Src/MacEmul/Files.c @@ -672,8 +672,7 @@ OSErr FSMakeFSSpec(SInt16 vRefNum, SInt32 dirID, ConstStr255Param pathName, FSSp } OS_PathSpecToString(&spec.path, path, 256); } else { -#line 840 - OPTION_ASSERT(vRefNum!=0); + OS_ASSERT(840, vRefNum!=0); tmpfss.vRefNum = vRefNum; tmpfss.parID = dirID ? dirID : 2; tmpfss.name[0] = 0; diff --git a/command_line/CmdLine/Src/MacEmul/Resources.c b/command_line/CmdLine/Src/MacEmul/Resources.c index 821df0b..1563898 100644 --- a/command_line/CmdLine/Src/MacEmul/Resources.c +++ b/command_line/CmdLine/Src/MacEmul/Resources.c @@ -568,8 +568,7 @@ static void WriteResourceFork(SInt16 ref) { mrle = mtyp->ref_list; while (mrle) { -#line 943 - OPTION_ASSERT(reflist_offs < dmap.namelist_offs); + OS_ASSERT(943, reflist_offs < dmap.namelist_offs); drle.id = mrle->id; drle.name_offs = (mrle->name) ? name_offs : -1; @@ -583,18 +582,16 @@ static void WriteResourceFork(SInt16 ref) { reflist_offs += sizeof(trle); if (mrle->name) { -#line 962 if (dhdr.map_offs < dhdr.data_offs) - OPTION_ASSERT(name_offs + dmap.namelist_offs + dhdr.map_offs < dhdr.data_offs); + OS_ASSERT(963, name_offs + dmap.namelist_offs + dhdr.map_offs < dhdr.data_offs); RF_HANDLE_INSERT(hand_ref, mrle->name, dhdr.map_offs + dmap.namelist_offs + drle.name_offs, mrle->name[0] + 1); name_offs += mrle->name[0] + 1; } -#line 970 - OPTION_ASSERT(data_offs < dhdr.data_len); - OPTION_ASSERT(mrle->hand!=NULL); + OS_ASSERT(970, data_offs < dhdr.data_len); + OS_ASSERT(971, mrle->hand!=NULL); if (dhdr.map_offs > dhdr.data_offs) - OPTION_ASSERT(data_offs + dhdr.data_offs < dhdr.map_offs); + OS_ASSERT(973, data_offs + dhdr.data_offs < dhdr.map_offs); HLock(mrle->hand); dent.len = GetHandleSize(mrle->hand); diff --git a/command_line/CmdLine/Src/OSLib/Generic.c b/command_line/CmdLine/Src/OSLib/Generic.c index f2c2ac9..84de7fd 100644 --- a/command_line/CmdLine/Src/OSLib/Generic.c +++ b/command_line/CmdLine/Src/OSLib/Generic.c @@ -7,7 +7,7 @@ static OSOpenedDir wilddirref; static OSSpec wildmatch; char STSbuf[256]; -inline char dummyfunc(int ch) { +CW_INLINE char dummyfunc(int ch) { return ch; } diff --git a/command_line/CmdLine/Src/OSLib/MacFileTypes.c b/command_line/CmdLine/Src/OSLib/MacFileTypes.c index 5ebb4d6..d8e63a8 100644 --- a/command_line/CmdLine/Src/OSLib/MacFileTypes.c +++ b/command_line/CmdLine/Src/OSLib/MacFileTypes.c @@ -15,8 +15,7 @@ void OS_AddFileTypeMappingList(OSFileTypeMappings **list, const OSFileTypeMappin scan = &(*scan)->next; *scan = malloc(sizeof(OSFileTypeMappings)); -#line 40 - OPTION_ASSERT(*scan != NULL); + OS_ASSERT(40, *scan != NULL); (*scan)->mappingList = entry; (*scan)->next = 0; } diff --git a/command_line/CmdLine/Src/OSLib/MacSpecs.c b/command_line/CmdLine/Src/OSLib/MacSpecs.c index ece3d96..6d11620 100644 --- a/command_line/CmdLine/Src/OSLib/MacSpecs.c +++ b/command_line/CmdLine/Src/OSLib/MacSpecs.c @@ -94,8 +94,7 @@ static DirNode *FindDirMapEntry(unsigned int dirID) { row = dirID >> 8; col = dirID & 0xFF; -#line 166 - OPTION_ASSERT(dirID != 2); + OS_ASSERT(166, dirID != 2); if (row >= dirMapRows) return 0; @@ -167,8 +166,7 @@ static int FindOrAdd(const OSPathSpec *path, unsigned int *vRefNum, unsigned int *vRefNum = vol->vRefNum; level = &vol->root; ptr = &pb[1]; -#line 267 - OPTION_ASSERT(*pb == OS_PATHSEP); + OS_ASSERT(267, *pb == OS_PATHSEP); while (*ptr) { st = ptr; diff --git a/command_line/CmdLine/Src/OSLib/StringUtils.c b/command_line/CmdLine/Src/OSLib/StringUtils.c index 9d5d110..b2a71e7 100644 --- a/command_line/CmdLine/Src/OSLib/StringUtils.c +++ b/command_line/CmdLine/Src/OSLib/StringUtils.c @@ -91,8 +91,7 @@ char *mvprintf(char *mybuf, unsigned int len, const char *format, va_list va) { int ret; char *buf; -#line 134 - OPTION_ASSERT(mybuf != NULL); + OS_ASSERT(134, mybuf != NULL); maxlen = len - 1; buf = mybuf; diff --git a/command_line/CmdLine/Src/Plugins/CLPlugins.c b/command_line/CmdLine/Src/Plugins/CLPlugins.c index 38af6fe..8db8398 100644 --- a/command_line/CmdLine/Src/Plugins/CLPlugins.c +++ b/command_line/CmdLine/Src/Plugins/CLPlugins.c @@ -15,8 +15,7 @@ const ToolVersionInfo *Plugin_GetToolVersionInfo(void) { static const char *Plugin_GetDisplayName(Plugin *pl) { const char *name; -#line 251 - OPTION_ASSERT(pl); + OS_ASSERT(251, pl); if (pl->cb->GetDisplayName && pl->cb->GetDisplayName(&name) == 0) return name; @@ -26,8 +25,7 @@ static const char *Plugin_GetDisplayName(Plugin *pl) { const char *Plugin_GetDropInName(Plugin *pl) { const char *name; -#line 263 - OPTION_ASSERT(pl); + OS_ASSERT(263, pl); if (pl->cb->GetDropInName && pl->cb->GetDropInName(&name) == 0) return name; @@ -38,8 +36,7 @@ const char *Plugin_GetDropInName(Plugin *pl) { const VersionInfo *Plugin_GetVersionInfo(Plugin *pl) { static const VersionInfo fakeversion = {0, 0, 0, 0}; const VersionInfo *vi; -#line 276 - OPTION_ASSERT(pl); + OS_ASSERT(276, pl); if (pl->cb->GetVersionInfo && pl->cb->GetVersionInfo(&vi) == 0) return vi; @@ -82,8 +79,7 @@ DropInFlags *Plugin_GetDropInFlags(Plugin *pl) { const DropInFlags *df; SInt32 dfsize; -#line 329 - OPTION_ASSERT(pl); + OS_ASSERT(329, pl); if (pl->cb->GetDropInFlags && pl->cb->GetDropInFlags(&df, &dfsize) == 0) { memset(&retdf, 0, sizeof(retdf)); @@ -97,8 +93,7 @@ DropInFlags *Plugin_GetDropInFlags(Plugin *pl) { OSType Plugin_GetPluginType(Plugin *pl) { DropInFlags *df; -#line 345 - OPTION_ASSERT(pl); + OS_ASSERT(345, pl); df = Plugin_GetDropInFlags(pl); if (df) @@ -115,9 +110,8 @@ const CWTargetList *Plugin_CL_GetTargetList(Plugin *pl) { }; const CWTargetList *tl; -#line 358 - OPTION_ASSERT(pl); - OPTION_ASSERT(pl->cl_cb != NULL); + OS_ASSERT(358, pl); + OS_ASSERT(359, pl->cl_cb != NULL); if (pl->cl_cb->GetTargetList && pl->cl_cb->GetTargetList(&tl) == 0) return tl; @@ -131,8 +125,7 @@ const CWPanelList *Plugin_GetPanelList(Plugin *pl) { }; const CWPanelList *pnl; -#line 381 - OPTION_ASSERT(pl); + OS_ASSERT(381, pl); if (pl->cb->GetPanelList && pl->cb->GetPanelList(&pnl) == 0) return pnl; @@ -147,9 +140,8 @@ const CWExtMapList *Plugin_CL_GetExtMapList(Plugin *pl) { }; const CWExtMapList *el; -#line 401 - OPTION_ASSERT(pl); - OPTION_ASSERT(pl->cl_cb != NULL); + OS_ASSERT(401, pl); + OS_ASSERT(402, pl->cl_cb != NULL); if (pl->cl_cb->GetDefaultMappingList && pl->cl_cb->GetDefaultMappingList(&el) == 0) return el; @@ -160,8 +152,7 @@ const CWExtMapList *Plugin_CL_GetExtMapList(Plugin *pl) { const OSFileTypeMappingList *Plugin_GetFileTypeMappingList(Plugin *pl) { const OSFileTypeMappingList *ftml; -#line 422 - OPTION_ASSERT(pl); + OS_ASSERT(422, pl); if (pl->cb->GetFileTypeMappings && pl->cb->GetFileTypeMappings(&ftml) == 0) return ftml; @@ -177,9 +168,8 @@ const CWObjectFlags *Plugin_CL_GetObjectFlags(Plugin *pl) { }; const CWObjectFlags *cof; -#line 434 - OPTION_ASSERT(pl); - OPTION_ASSERT(pl->cl_cb != NULL); + OS_ASSERT(434, pl); + OS_ASSERT(435, pl->cl_cb != NULL); if (pl->cl_cb->GetObjectFlags && pl->cl_cb->GetObjectFlags(&cof) == 0) return cof; @@ -288,8 +278,7 @@ Boolean Plugin_MatchesType(Plugin *pl, OSType type, OSType lang, Boolean exact) Boolean Plugin_Pr_MatchesPlugin(Plugin *pl, CLPluginInfo *pluginfo, OSType cpu, OSType os) { Boolean isSupported; -#line 566 - OPTION_ASSERT(pl->pr_cb != NULL); + OS_ASSERT(566, pl->pr_cb != NULL); if (pl->pr_cb->SupportsPlugin && pl->pr_cb->SupportsPlugin(pluginfo, cpu, os, &isSupported) == 0) return isSupported; @@ -300,8 +289,7 @@ Boolean Plugin_Pr_MatchesPlugin(Plugin *pl, CLPluginInfo *pluginfo, OSType cpu, Boolean Plugin_Pr_MatchesPanels(Plugin *pl, int numPanels, const char **panelNames) { Boolean isSupported; -#line 578 - OPTION_ASSERT(pl->pr_cb != NULL); + OS_ASSERT(578, pl->pr_cb != NULL); if (pl->pr_cb->SupportsPanels && pl->pr_cb->SupportsPanels(numPanels, panelNames, &isSupported) == 0) return isSupported; @@ -312,9 +300,8 @@ Boolean Plugin_Pr_MatchesPanels(Plugin *pl, int numPanels, const char **panelNam Boolean Plugin_CL_WriteObjectFile(Plugin *pl, FSSpec *srcfss, FSSpec *outfss, OSType creator, OSType type, Handle data) { OSSpec outoss; -#line 590 - OPTION_ASSERT(pl->cl_cb != NULL); - OPTION_ASSERT(data != NULL && srcfss != NULL && outfss != NULL); + OS_ASSERT(590, pl->cl_cb != NULL); + OS_ASSERT(591, data != NULL && srcfss != NULL && outfss != NULL); if (pl->cl_cb->WriteObjectFile) { return pl->cl_cb->WriteObjectFile(srcfss, outfss, creator, type, data) == 0; @@ -349,7 +336,7 @@ Boolean Plugin_CL_GetCompilerMapping(Plugin *pl, OSType type, const char *ext, U } static Boolean SupportedPlugin(Plugin *pl, const char **reason) { - static const SInt32 DropInFlagsSize[3] = {0, 0x10, 0x12}; + static const SInt32 DropInFlagsSize[3] = {0, sizeof(DropInFlagsV1), sizeof(DropInFlags)}; const DropInFlags *df; const CWObjectFlags *cof; SInt32 dfsize; @@ -884,9 +871,8 @@ int Plugins_GetPluginList(Plugin *list, int *numPlugins, CLPluginInfo **pluginIn while (scan) { df = Plugin_GetDropInFlags(scan); vi = Plugin_GetVersionInfo(scan); -#line 1270 - OPTION_ASSERT(df != NULL); - OPTION_ASSERT(vi != NULL); + OS_ASSERT(1270, df != NULL); + OS_ASSERT(1271, vi != NULL); (*pluginInfo)[idx].plugintype = df->dropintype; (*pluginInfo)[idx].language = df->edit_language; (*pluginInfo)[idx].dropinflags = df->dropinflags; diff --git a/command_line/CmdLine/Src/Project/CLAccessPaths.c b/command_line/CmdLine/Src/Project/CLAccessPaths.c index d20b16b..1b455da 100644 --- a/command_line/CmdLine/Src/Project/CLAccessPaths.c +++ b/command_line/CmdLine/Src/Project/CLAccessPaths.c @@ -32,8 +32,7 @@ void Path_Free(Path *path) { } Boolean Paths_Initialize(Paths *paths) { -#line 52 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(52, paths != NULL); memset(paths, 0, sizeof(Paths)); paths->pathsArray = NULL; @@ -43,8 +42,7 @@ Boolean Paths_Initialize(Paths *paths) { Boolean Paths_Terminate(Paths *paths) { UInt16 index; -#line 63 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(63, paths != NULL); if (paths->pathsArray) { for (index = 0; index < paths->pathsCount; index++) @@ -59,8 +57,7 @@ Boolean Paths_Terminate(Paths *paths) { static Boolean Paths_GrowPaths(Paths *paths, UInt16 *index) { Path **newArray; -#line 84 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(84, paths != NULL); if (paths->pathsCount >= paths->arraySize) { paths->arraySize += 20; @@ -116,8 +113,7 @@ Boolean Paths_DeletePath(Paths *paths, UInt16 index) { } Path *Paths_GetPath(Paths *paths, UInt16 pathnum) { -#line 151 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(151, paths != NULL); if (pathnum < paths->pathsCount) return paths->pathsArray[pathnum]; @@ -126,8 +122,7 @@ Path *Paths_GetPath(Paths *paths, UInt16 pathnum) { } UInt16 Paths_Count(const Paths *paths) { -#line 161 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(161, paths != NULL); return paths->pathsCount; } @@ -135,8 +130,7 @@ UInt16 Paths_Count(const Paths *paths) { Boolean Paths_FindPath(const Paths *paths, const Path *path) { UInt16 idx; -#line 169 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(169, paths != NULL); for (idx = 0; idx < paths->pathsCount; idx++) { if (paths->pathsArray[idx] == path) @@ -150,8 +144,7 @@ Path *Paths_FindPathSpec(const Paths *paths, const OSPathSpec *dir) { UInt16 idx; Path *path; -#line 182 - OPTION_ASSERT(paths != NULL); + OS_ASSERT(182, paths != NULL); for (idx = 0; idx < paths->pathsCount; idx++) { path = paths->pathsArray[idx]; @@ -220,8 +213,7 @@ int Paths_CountRecurse(Paths *paths) { mine = Paths_Count(paths); for (idx = 0; idx < mine; idx++) { path = Paths_GetPath(paths, idx); -#line 336 - OPTION_ASSERT(path); + OS_ASSERT(336, path); if (path->recursive) mine += Paths_CountRecurse(path->recursive); @@ -237,11 +229,9 @@ static void CopyRecurseFSS(FSSpec **list, Paths *paths, UInt16 *count) { for (idx = 0; idx < Paths_Count(paths); idx++) { path = Paths_GetPath(paths, idx); -#line 353 - OPTION_ASSERT(path && *count > 0); + OS_ASSERT(353, path && *count > 0); OS_MakeSpecWithPath(path->spec, NULL, 0, &spec); -#line 355 - OPTION_ASSERT(OS_OSSpec_To_FSSpec(&spec, *list)); + OS_ASSERT(355, OS_OSSpec_To_FSSpec(&spec, *list)); (*list)++; (*count)--; if (path->recursive) @@ -251,13 +241,11 @@ static void CopyRecurseFSS(FSSpec **list, Paths *paths, UInt16 *count) { void Paths_CopyRecurseFSS(FSSpec *list, Paths *paths, UInt16 count) { CopyRecurseFSS(&list, paths, &count); -#line 367 - OPTION_ASSERT(count == 0); + OS_ASSERT(367, count == 0); } static Boolean Frameworks_Initialize(Frameworks *fws) { -#line 405 - OPTION_ASSERT(fws != NULL); + OS_ASSERT(405, fws != NULL); memset(fws, 0, sizeof(Frameworks)); fws->fwsArray = NULL; @@ -267,8 +255,7 @@ static Boolean Frameworks_Initialize(Frameworks *fws) { static Boolean Frameworks_Grow(Frameworks *fws, UInt16 *index) { Paths_FWInfo **newArray; -#line 418 - OPTION_ASSERT(fws != NULL); + OS_ASSERT(418, fws != NULL); if (fws->fwsCount >= fws->arraySize) { fws->arraySize += 20; @@ -461,9 +448,8 @@ void Framework_GetEnvInfo(void) { int err; Boolean is_file; -#line 672 - OPTION_ASSERT(Paths_Initialize(&FrameworkPaths) == 1); - OPTION_ASSERT(Frameworks_Initialize(&FrameworkInfo) == 1); + OS_ASSERT(672, Paths_Initialize(&FrameworkPaths) == 1); + OS_ASSERT(673, Frameworks_Initialize(&FrameworkInfo) == 1); env = getenv("MWFrameworkPaths"); if (env) { @@ -518,8 +504,7 @@ int Frameworks_GetCount(void) { } Paths_FWInfo *Frameworks_GetInfo(int which) { -#line 762 - OPTION_ASSERT(FrameworkInfo.fwsArray); - OPTION_ASSERT(FrameworkInfo.fwsCount > which); + OS_ASSERT(762, FrameworkInfo.fwsArray); + OS_ASSERT(763, FrameworkInfo.fwsCount > which); return FrameworkInfo.fwsArray[which]; } diff --git a/command_line/CmdLine/Src/Project/CLFiles.c b/command_line/CmdLine/Src/Project/CLFiles.c index 6953df1..e651c73 100644 --- a/command_line/CmdLine/Src/Project/CLFiles.c +++ b/command_line/CmdLine/Src/Project/CLFiles.c @@ -30,8 +30,7 @@ void File_Free(File *file) { } Boolean Files_Initialize(Files *this) { -#line 47 - OPTION_ASSERT(this != NULL); + OS_ASSERT(47, this != NULL); return 1; } @@ -39,8 +38,7 @@ Boolean Files_Terminate(Files *this) { File *file; File *next; -#line 56 - OPTION_ASSERT(this != NULL); + OS_ASSERT(56, this != NULL); for (file = this->fileList; file; file = next) { next = file->next; @@ -57,9 +55,8 @@ Boolean Files_AddFile(Files *this, File *file) { Boolean Files_InsertFile(Files *this, File *file, SInt32 position) { File **scan; -#line 80 - OPTION_ASSERT(this != NULL); - OPTION_ASSERT(file != NULL); + OS_ASSERT(80, this != NULL); + OS_ASSERT(81, file != NULL); if (position < 0) position = 0; @@ -81,9 +78,8 @@ Boolean Files_InsertFile(Files *this, File *file, SInt32 position) { File *Files_GetFile(Files *this, SInt32 filenum) { File *file; -#line 104 - OPTION_ASSERT(this != NULL); - OPTION_ASSERT(filenum >= 0); + OS_ASSERT(104, this != NULL); + OS_ASSERT(105, filenum >= 0); file = this->fileList; while (file && file->filenum != filenum) @@ -101,8 +97,7 @@ File *Files_FindFile(Files *this, OSSpec *spec) { } int Files_Count(Files *this) { -#line 127 - OPTION_ASSERT(this != NULL); + OS_ASSERT(127, this != NULL); return this->fileCount; } diff --git a/command_line/CmdLine/Src/Project/CLOverlays.c b/command_line/CmdLine/Src/Project/CLOverlays.c index 3437366..2656869 100644 --- a/command_line/CmdLine/Src/Project/CLOverlays.c +++ b/command_line/CmdLine/Src/Project/CLOverlays.c @@ -6,8 +6,7 @@ Boolean Overlays_Initialize(Overlays *this) { OvlAddr addr; SInt32 idx; -#line 24 - OPTION_ASSERT(this); + OS_ASSERT(24, this); this->groups = NULL; this->lastgrp = NULL; @@ -24,12 +23,10 @@ Boolean Overlays_Initialize(Overlays *this) { return 0; OvlGroup_AddOverlay(grp, ovl, &idx); -#line 42 - OPTION_ASSERT(idx==0); + OS_ASSERT(42, idx==0); Overlays_AddOvlGroup(this, grp, &idx); -#line 45 - OPTION_ASSERT(idx==0); + OS_ASSERT(45, idx==0); return 1; } @@ -38,8 +35,7 @@ Boolean Overlays_Terminate(Overlays *this) { OvlGroup *grp; OvlGroup *nxtgrp; -#line 54 - OPTION_ASSERT(this); + OS_ASSERT(54, this); for (grp = this->groups; grp; grp = nxtgrp) { nxtgrp = grp->next; @@ -52,9 +48,8 @@ Boolean Overlays_Terminate(Overlays *this) { } Boolean Overlays_AddOvlGroup(Overlays *this, OvlGroup *grp, SInt32 *grpnum) { -#line 70 - OPTION_ASSERT(this); - OPTION_ASSERT(grp); + OS_ASSERT(70, this); + OS_ASSERT(71, grp); if (this->groups == NULL) this->groups = grp; @@ -73,8 +68,7 @@ OvlGroup *Overlays_GetOvlGroup(Overlays *this, SInt32 grpnum) { OvlGroup *grp; SInt32 cnt = 0; -#line 93 - OPTION_ASSERT(this); + OS_ASSERT(93, this); grp = this->groups; while (grp && cnt < grpnum) { @@ -92,8 +86,7 @@ SInt32 Overlays_CountGroups(Overlays *this) { OvlGroup *scan; int num = 0; -#line 112 - OPTION_ASSERT(this); + OS_ASSERT(112, this); scan = this->groups; while (scan) { @@ -107,8 +100,7 @@ SInt32 Overlays_CountGroups(Overlays *this) { Boolean Overlays_AddFileToOverlay(Overlays *this, SInt32 grpnum, SInt32 ovlnum, SInt32 filenum) { Overlay *oly; -#line 130 - OPTION_ASSERT(this); + OS_ASSERT(130, this); oly = Overlays_GetOverlayInGroup(this, grpnum, ovlnum); if (oly) @@ -120,8 +112,7 @@ Boolean Overlays_AddFileToOverlay(Overlays *this, SInt32 grpnum, SInt32 ovlnum, Overlay *Overlays_GetOverlayInGroup(Overlays *this, SInt32 grpnum, SInt32 ovlnum) { OvlGroup *grp; -#line 144 - OPTION_ASSERT(this); + OS_ASSERT(144, this); grp = Overlays_GetOvlGroup(this, grpnum); if (grp) @@ -133,8 +124,7 @@ Overlay *Overlays_GetOverlayInGroup(Overlays *this, SInt32 grpnum, SInt32 ovlnum SInt32 Overlays_GetFileInOverlay(Overlays *this, SInt32 grpnum, SInt32 ovlnum, SInt32 filnum) { Overlay *oly; -#line 160 - OPTION_ASSERT(this); + OS_ASSERT(160, this); oly = Overlays_GetOverlayInGroup(this, grpnum, ovlnum); if (oly) @@ -146,8 +136,7 @@ SInt32 Overlays_GetFileInOverlay(Overlays *this, SInt32 grpnum, SInt32 ovlnum, S OvlGroup *OvlGroup_New(const char *name, OvlAddr addr) { OvlGroup *grp; -#line 175 - OPTION_ASSERT(name); + OS_ASSERT(175, name); grp = xmalloc(NULL, sizeof(OvlGroup)); if (grp) { @@ -159,8 +148,7 @@ OvlGroup *OvlGroup_New(const char *name, OvlAddr addr) { grp->olycnt = 0; grp->next = NULL; } else { -#line 188 - DO_INTERNAL_ERROR("Could not allocate %s", "overlay group"); + DO_INTERNAL_ERROR(188, "Could not allocate %s", "overlay group"); } return grp; } @@ -169,8 +157,7 @@ void OvlGroup_Delete(OvlGroup *grp) { Overlay *scan; Overlay *next; -#line 197 - OPTION_ASSERT(grp); + OS_ASSERT(197, grp); for (scan = grp->olys; scan; scan = next) { next = scan->next; @@ -182,9 +169,8 @@ void OvlGroup_Delete(OvlGroup *grp) { } Boolean OvlGroup_AddOverlay(OvlGroup *this, Overlay *oly, SInt32 *olynum) { -#line 211 - OPTION_ASSERT(this); - OPTION_ASSERT(oly); + OS_ASSERT(211, this); + OS_ASSERT(212, oly); if (!this->lastoly) this->olys = oly; @@ -203,8 +189,7 @@ Overlay *OvlGroup_GetOverlay(OvlGroup *this, SInt32 olynum) { Overlay *oly; SInt32 cnt = 0; -#line 234 - OPTION_ASSERT(this); + OS_ASSERT(234, this); oly = this->olys; while (oly && cnt < olynum) { @@ -222,8 +207,7 @@ SInt32 OvlGroup_CountOverlays(OvlGroup *this) { Overlay *scan; int num = 0; -#line 254 - OPTION_ASSERT(this); + OS_ASSERT(254, this); scan = this->olys; while (scan) { @@ -246,15 +230,13 @@ Overlay *Overlay_New(const char *name) { oly->cnt = 0; oly->next = NULL; } else { -#line 281 - DO_INTERNAL_ERROR("Could not allocate %s", "overlay"); + DO_INTERNAL_ERROR(281, "Could not allocate %s", "overlay"); } return oly; } void Overlay_Delete(Overlay *oly) { -#line 288 - OPTION_ASSERT(oly); + OS_ASSERT(288, oly); if (oly->list) xfree(oly->list); @@ -262,8 +244,7 @@ void Overlay_Delete(Overlay *oly) { } Boolean Overlay_AddFile(Overlay *oly, SInt32 filenum, SInt32 *filnum) { -#line 296 - OPTION_ASSERT(oly); + OS_ASSERT(296, oly); if (oly->cnt >= oly->max) { oly->max += 16; @@ -279,8 +260,7 @@ Boolean Overlay_AddFile(Overlay *oly, SInt32 filenum, SInt32 *filnum) { } SInt32 Overlay_GetFile(Overlay *oly, SInt32 filnum) { -#line 314 - OPTION_ASSERT(oly); + OS_ASSERT(314, oly); if (filnum < oly->cnt) return oly->list[filnum]; @@ -289,8 +269,7 @@ SInt32 Overlay_GetFile(Overlay *oly, SInt32 filnum) { } SInt32 Overlay_CountFiles(Overlay *oly) { -#line 323 - OPTION_ASSERT(oly); + OS_ASSERT(323, oly); return oly->cnt; } diff --git a/command_line/CmdLine/Src/Project/CLProj.c b/command_line/CmdLine/Src/Project/CLProj.c index 83b2ce1..79b99ae 100644 --- a/command_line/CmdLine/Src/Project/CLProj.c +++ b/command_line/CmdLine/Src/Project/CLProj.c @@ -8,8 +8,7 @@ Boolean Proj_Initialize(Project *this) { } Boolean Proj_Terminate(Project *this) { -#line 25 - OPTION_ASSERT(this != NULL); + OS_ASSERT(25, this != NULL); Targets_Term(this->targets); return 1; diff --git a/command_line/CmdLine/Src/Project/CLSegs.c b/command_line/CmdLine/Src/Project/CLSegs.c index a0e006c..e2c7369 100644 --- a/command_line/CmdLine/Src/Project/CLSegs.c +++ b/command_line/CmdLine/Src/Project/CLSegs.c @@ -18,21 +18,18 @@ Boolean Segments_Initialize(Segments *segs) { Segment *main; UInt16 idx; -#line 36 - OPTION_ASSERT(segs != NULL); + OS_ASSERT(36, segs != NULL); memset(segs, 0, sizeof(Segments)); segs->segsArray = NULL; jump = Segment_New("Jump Table", 0x28); Segments_AddSegment(segs, jump, &idx); -#line 44 - OPTION_ASSERT(idx==0); + OS_ASSERT(44, idx==0); main = Segment_New("Main", 0xFFFF); Segments_AddSegment(segs, main, &idx); -#line 49 - OPTION_ASSERT(idx==1); + OS_ASSERT(49, idx==1); return 1; } @@ -40,8 +37,7 @@ Boolean Segments_Initialize(Segments *segs) { Boolean Segments_Terminate(Segments *segs) { UInt16 index; -#line 57 - OPTION_ASSERT(segs != NULL); + OS_ASSERT(57, segs != NULL); if (segs->segsArray) { for (index = 0; index < segs->segsCount; index++) @@ -56,8 +52,7 @@ Boolean Segments_Terminate(Segments *segs) { static Boolean Segments_GrowSegments(Segments *segs, UInt16 *index) { Segment **newArray; -#line 78 - OPTION_ASSERT(segs != NULL); + OS_ASSERT(78, segs != NULL); if (segs->segsCount >= segs->arraySize) { segs->arraySize += 20; @@ -106,8 +101,7 @@ Boolean Segments_DeleteSegment(Segments *segs, UInt16 index) { } Segment *Segments_GetSegment(Segments *segs, UInt16 segnum) { -#line 137 - OPTION_ASSERT(segs != NULL); + OS_ASSERT(137, segs != NULL); if (segnum < segs->segsCount) return segs->segsArray[segnum]; @@ -116,8 +110,7 @@ Segment *Segments_GetSegment(Segments *segs, UInt16 segnum) { } UInt16 Segments_Count(const Segments *segs) { -#line 147 - OPTION_ASSERT(segs != NULL); + OS_ASSERT(147, segs != NULL); return segs->segsCount; } diff --git a/compiler_and_linker/FrontEnd/C/CScope.c b/compiler_and_linker/FrontEnd/C/CScope.c index a59a8a7..ef5695c 100644 --- a/compiler_and_linker/FrontEnd/C/CScope.c +++ b/compiler_and_linker/FrontEnd/C/CScope.c @@ -1364,7 +1364,7 @@ static Boolean CScope_FindQualifiedTag(CScopeParseResult *result, NameSpace *nsp return 0; } -inline void CScope_NSIteratorInit(CScopeNSIterator *iterator, NameSpace *nspace, CScopeParseResult *result) { +CW_INLINE void CScope_NSIteratorInit(CScopeNSIterator *iterator, NameSpace *nspace, CScopeParseResult *result) { // assumed name if (nspace->usings) { iterator->nspace = NULL; @@ -1376,7 +1376,7 @@ inline void CScope_NSIteratorInit(CScopeNSIterator *iterator, NameSpace *nspace, iterator->result = result; } -inline Boolean CScope_NSIteratorNext(CScopeNSIterator *iterator) { +CW_INLINE Boolean CScope_NSIteratorNext(CScopeNSIterator *iterator) { // assumed name if (iterator->lookup) return (iterator->lookup = iterator->lookup->next) != NULL; diff --git a/compiler_and_linker/unsorted/CExprConvMatch.c b/compiler_and_linker/unsorted/CExprConvMatch.c index 24afb62..69e6651 100644 --- a/compiler_and_linker/unsorted/CExprConvMatch.c +++ b/compiler_and_linker/unsorted/CExprConvMatch.c @@ -225,7 +225,7 @@ static Boolean CExpr_IsBetterClassConversion(TypeClass *a, TypeClass *b, TypeCla return 0; } -inline Boolean Inline_501D40(Type *a, Type *b) { +CW_INLINE Boolean Inline_501D40(Type *a, Type *b) { return (a == TYPE(&stbool)) && (IS_TYPE_POINTER_ONLY(b) || IS_TYPE_MEMBERPOINTER(b)); } @@ -430,7 +430,7 @@ typedef enum MysteryEnum { ME_255 = 255 } MysteryEnum; -inline MysteryEnum Inline_501FF0(UInt32 qual1, UInt32 qual2) { +CW_INLINE MysteryEnum Inline_501FF0(UInt32 qual1, UInt32 qual2) { if ((qual1 & Q_CV) == (qual2 & Q_CV)) return ME_0; diff --git a/compiler_and_linker/unsorted/CInline.c b/compiler_and_linker/unsorted/CInline.c index 85cdf83..7d3c2ef 100644 --- a/compiler_and_linker/unsorted/CInline.c +++ b/compiler_and_linker/unsorted/CInline.c @@ -386,7 +386,7 @@ static ENode *CInline_FoldConst(ENode *expr) { } // unknown name -inline SInt32 CInline_GetLocalID2(Object *object) { +CW_INLINE SInt32 CInline_GetLocalID2(Object *object) { ObjectList *list; SInt32 counter; diff --git a/compiler_and_linker/unsorted/CSOM.c b/compiler_and_linker/unsorted/CSOM.c index 896c425..816c749 100644 --- a/compiler_and_linker/unsorted/CSOM.c +++ b/compiler_and_linker/unsorted/CSOM.c @@ -204,7 +204,7 @@ static Type *CSOM_FindClassType(HashNameNode *name) { return type; } -static inline UInt16 CSOM_GetTokenTableIndex(const Object *object) { +CW_INLINE UInt16 CSOM_GetTokenTableIndex(const Object *object) { CError_ASSERT(173, IS_TYPE_METHOD(object->type)); return TYPE_METHOD(object->type)->x1E; } diff --git a/compiler_and_linker/unsorted/InlineAsmPPC.c b/compiler_and_linker/unsorted/InlineAsmPPC.c index 834432c..606b6af 100644 --- a/compiler_and_linker/unsorted/InlineAsmPPC.c +++ b/compiler_and_linker/unsorted/InlineAsmPPC.c @@ -47,7 +47,7 @@ static void DiadicOperatorPPC(IAExpr *left, short token, IAExpr *right); static void InlineAsm_ExpressionPPC(IAExpr *expr, SInt32 value); static void savepicbase(short reg, HashNameNode *name); -inline SInt32 ExtractValue(CInt64 value) { +CW_INLINE SInt32 ExtractValue(CInt64 value) { return (SInt32) CInt64_GetULong(&value); } diff --git a/compiler_and_linker/unsorted/IroLinearForm.c b/compiler_and_linker/unsorted/IroLinearForm.c index 2ac1d0a..4941587 100644 --- a/compiler_and_linker/unsorted/IroLinearForm.c +++ b/compiler_and_linker/unsorted/IroLinearForm.c @@ -183,7 +183,7 @@ static void MarkArgs(IROLinear *linear) { } // assumed name, position -static inline void MarkSubExpr(IROLinear *linear) { +CW_INLINE void MarkSubExpr(IROLinear *linear) { int i; switch (linear->type) { diff --git a/compiler_and_linker/unsorted/IroPointerAnalysisADTs.c b/compiler_and_linker/unsorted/IroPointerAnalysisADTs.c index fe5d4bb..54e59c8 100644 --- a/compiler_and_linker/unsorted/IroPointerAnalysisADTs.c +++ b/compiler_and_linker/unsorted/IroPointerAnalysisADTs.c @@ -4,7 +4,7 @@ #include "compiler/CInt64.h" // TODO: this should really be elsewhere (but where?) -inline UInt32 gcd(UInt32 a, UInt32 b) { +CW_INLINE UInt32 gcd(UInt32 a, UInt32 b) { UInt32 chk; if (!a) @@ -207,20 +207,20 @@ static LocationSet stDummyLocationSet = { static LocationSet *stUnknownLs = &stDummyLocationSet; // forward decls -inline StackElement *Stack_sub_48A5B0(Stack **stackPtr); -inline void ObjectSet_RemoveAll(ObjectSet *procList); -inline void ExtendedParamSet_RemoveAll(ExtendedParamSet *epList); -inline void LocationSet_Copy(LocationSet *dest, LocationSet *src); -inline Boolean LocationSet_IsUnknown(LocationSet *ls); -inline void LocationSetSet_RemoveAll(LocationSetSet *lss); -inline void LocationSetSet_AddSet(LocationSetSet *dest, LocationSetSet *src); -inline void ParamMappingFunction_RemoveAll(ParamMappingFunction *pmf); -inline void ParamMappingFunction_AddAllMaybe_sub_487C50(ParamMappingFunction *dest, ParamMappingFunction *src); -inline void PointsToFunction_RemoveAll(PointsToFunction *pointsToFunc); -inline void PointsToFunction_AddAllIGuess_sub_487D80(PointsToFunction *dest, PointsToFunction *src); -inline void PTFList_RemoveAll(PTFList *ptfList); - -inline StackElement *StackElement_New(void) { +CW_INLINE StackElement *Stack_sub_48A5B0(Stack **stackPtr); +CW_INLINE void ObjectSet_RemoveAll(ObjectSet *procList); +CW_INLINE void ExtendedParamSet_RemoveAll(ExtendedParamSet *epList); +CW_INLINE void LocationSet_Copy(LocationSet *dest, LocationSet *src); +CW_INLINE Boolean LocationSet_IsUnknown(LocationSet *ls); +CW_INLINE void LocationSetSet_RemoveAll(LocationSetSet *lss); +CW_INLINE void LocationSetSet_AddSet(LocationSetSet *dest, LocationSetSet *src); +CW_INLINE void ParamMappingFunction_RemoveAll(ParamMappingFunction *pmf); +CW_INLINE void ParamMappingFunction_AddAllMaybe_sub_487C50(ParamMappingFunction *dest, ParamMappingFunction *src); +CW_INLINE void PointsToFunction_RemoveAll(PointsToFunction *pointsToFunc); +CW_INLINE void PointsToFunction_AddAllIGuess_sub_487D80(PointsToFunction *dest, PointsToFunction *src); +CW_INLINE void PTFList_RemoveAll(PTFList *ptfList); + +CW_INLINE StackElement *StackElement_New(void) { StackElement *stackElement = IRO_malloc(sizeof(StackElement)); IRO_ASSERT(103, stackElement != NULL); #ifdef IRO_DEBUG @@ -232,7 +232,7 @@ inline StackElement *StackElement_New(void) { return stackElement; } -inline void StackElement_Delete(StackElement *stackElement) { +CW_INLINE void StackElement_Delete(StackElement *stackElement) { IRO_ASSERT(117, stackElement != NULL); IRO_ASSERT(118, stackElement->proc == NULL); IRO_ASSERT(119, stackElement->ptf == NULL); @@ -242,7 +242,7 @@ inline void StackElement_Delete(StackElement *stackElement) { IRO_free(stackElement); } -inline void StackElement_Init(StackElement *stackElement, Object *proc, PartialTransferFunction *ptf, ParamMappingFunction *map, IROLinear *funcCall) { +CW_INLINE void StackElement_Init(StackElement *stackElement, Object *proc, PartialTransferFunction *ptf, ParamMappingFunction *map, IROLinear *funcCall) { IRO_ASSERT(131, stackElement != NULL); IRO_ASSERT(132, proc != NULL); IRO_ASSERT(133, ptf != NULL); @@ -254,13 +254,13 @@ inline void StackElement_Init(StackElement *stackElement, Object *proc, PartialT stackElement->funcCall = funcCall; } -inline void StackElement_Copy(StackElement *dest, StackElement *src) { +CW_INLINE void StackElement_Copy(StackElement *dest, StackElement *src) { IRO_ASSERT(145, dest != NULL); IRO_ASSERT(146, src != NULL); StackElement_Init(dest, src->proc, src->ptf, src->map, src->funcCall); } -inline void StackElement_Term(StackElement *stackElement) { +CW_INLINE void StackElement_Term(StackElement *stackElement) { IRO_ASSERT(156, stackElement != NULL); #ifdef IRO_DEBUG stackElement->proc = NULL; @@ -270,38 +270,38 @@ inline void StackElement_Term(StackElement *stackElement) { #endif } -inline void *StackElement_sub_48A780(StackElement *stackElement) { +CW_INLINE void *StackElement_sub_48A780(StackElement *stackElement) { IRO_ASSERT(213, stackElement != NULL); return stackElement->proc; } -inline Boolean StackRelated_sub_48A760(void *key1, void *key2) { +CW_INLINE Boolean StackRelated_sub_48A760(void *key1, void *key2) { IRO_ASSERT(220, key1 != NULL); IRO_ASSERT(221, key2 != NULL); return key1 == key2; } -inline Object *StackElement_proc(StackElement *stackElement) { +CW_INLINE Object *StackElement_proc(StackElement *stackElement) { IRO_ASSERT(228, stackElement != NULL); return stackElement->proc; } -inline PartialTransferFunction *StackElement_ptf(StackElement *stackElement) { +CW_INLINE PartialTransferFunction *StackElement_ptf(StackElement *stackElement) { IRO_ASSERT(235, stackElement != NULL); return stackElement->ptf; } -inline ParamMappingFunction *StackElement_map(StackElement *stackElement) { +CW_INLINE ParamMappingFunction *StackElement_map(StackElement *stackElement) { IRO_ASSERT(242, stackElement != NULL); return stackElement->map; } -inline IROLinear *StackElement_funcCall(StackElement *stackElement) { +CW_INLINE IROLinear *StackElement_funcCall(StackElement *stackElement) { IRO_ASSERT(249, stackElement != NULL); return stackElement->funcCall; } -inline Stack *Stack_New(void) { +CW_INLINE Stack *Stack_New(void) { Stack *stack = IRO_malloc(sizeof(Stack)); IRO_ASSERT(265, stack != NULL); #ifdef IRO_DEBUG @@ -311,7 +311,7 @@ inline Stack *Stack_New(void) { return stack; } -inline void Stack_Delete(Stack *stack) { +CW_INLINE void Stack_Delete(Stack *stack) { IRO_ASSERT(277, stack != NULL); IRO_ASSERT(278, stack->top == NULL); IRO_ASSERT(279, stack->next == NULL); @@ -319,13 +319,13 @@ inline void Stack_Delete(Stack *stack) { IRO_free(stack); } -inline void Stack_Init(Stack *stack) { +CW_INLINE void Stack_Init(Stack *stack) { IRO_ASSERT(289, stack != NULL); stack->top = NULL; stack->next = NULL; } -inline void Stack_Term(Stack **stackPtr) { +CW_INLINE void Stack_Term(Stack **stackPtr) { StackElement *stackElement; IRO_ASSERT(299, stackPtr != NULL); @@ -338,7 +338,7 @@ inline void Stack_Term(Stack **stackPtr) { } } -inline void Stack_sub_48A660(Stack **stackPtr, StackElement *stackElement) { +CW_INLINE void Stack_sub_48A660(Stack **stackPtr, StackElement *stackElement) { StackElement *newElement; Stack *newStack; @@ -354,21 +354,21 @@ inline void Stack_sub_48A660(Stack **stackPtr, StackElement *stackElement) { *stackPtr = newStack; } -inline StackElement *Stack_Top(Stack **stackPtr) { +CW_INLINE StackElement *Stack_Top(Stack **stackPtr) { IRO_ASSERT(331, stackPtr != NULL); IRO_ASSERT(332, *stackPtr != NULL); return (*stackPtr)->top; } -inline Stack *Stack_Next(Stack **stackPtr) { +CW_INLINE Stack *Stack_Next(Stack **stackPtr) { IRO_ASSERT(343, stackPtr != NULL); IRO_ASSERT(344, *stackPtr != NULL); return (*stackPtr)->next; } -inline StackElement *Stack_sub_48A5B0(Stack **stackPtr) { +CW_INLINE StackElement *Stack_sub_48A5B0(Stack **stackPtr) { StackElement *stackElement; IRO_ASSERT(357, stackPtr != NULL); @@ -386,7 +386,7 @@ inline StackElement *Stack_sub_48A5B0(Stack **stackPtr) { return stackElement; } -inline StackElement *Stack_sub_48A710(Stack **stackPtr, void *key) { +CW_INLINE StackElement *Stack_sub_48A710(Stack **stackPtr, void *key) { Stack *stack; IRO_ASSERT(379, stackPtr != NULL); @@ -402,7 +402,7 @@ inline StackElement *Stack_sub_48A710(Stack **stackPtr, void *key) { return NULL; } -inline ObjectSet *ObjectSet_New(void) { +CW_INLINE ObjectSet *ObjectSet_New(void) { ObjectSet *procList; procList = IRO_malloc(sizeof(ObjectSet)); @@ -414,7 +414,7 @@ inline ObjectSet *ObjectSet_New(void) { return procList; } -inline void ObjectSet_Delete(ObjectSet *procList) { +CW_INLINE void ObjectSet_Delete(ObjectSet *procList) { IRO_ASSERT(451, procList != NULL); IRO_ASSERT(452, procList->proc == NULL); IRO_ASSERT(453, procList->otherProcs == NULL); @@ -422,13 +422,13 @@ inline void ObjectSet_Delete(ObjectSet *procList) { IRO_free(procList); } -inline void ObjectSet_Init(ObjectSet *procList) { +CW_INLINE void ObjectSet_Init(ObjectSet *procList) { IRO_ASSERT(463, procList != NULL); procList->proc = NULL; procList->otherProcs = NULL; } -inline void ObjectSet_Term(ObjectSet *procList) { +CW_INLINE void ObjectSet_Term(ObjectSet *procList) { IRO_ASSERT(481, procList != NULL); ObjectSet_RemoveAll(procList); #ifdef IRO_DEBUG @@ -437,7 +437,7 @@ inline void ObjectSet_Term(ObjectSet *procList) { #endif } -inline void ObjectSet_ForEach(ObjectSet *procList, void (*action)(Object *, void *), void *refcon) { +CW_INLINE void ObjectSet_ForEach(ObjectSet *procList, void (*action)(Object *, void *), void *refcon) { IRO_ASSERT(528, procList != NULL); IRO_ASSERT(529, action != NULL); IRO_ASSERT(530, refcon == NULL || refcon != NULL); @@ -448,7 +448,7 @@ inline void ObjectSet_ForEach(ObjectSet *procList, void (*action)(Object *, void } } -inline Object *ObjectSet_sub_485020(ObjectSet *procList, Object *proc) { +CW_INLINE Object *ObjectSet_sub_485020(ObjectSet *procList, Object *proc) { IRO_ASSERT(540, procList != NULL); IRO_ASSERT(541, proc != NULL); while (procList && procList->proc) { @@ -459,12 +459,12 @@ inline Object *ObjectSet_sub_485020(ObjectSet *procList, Object *proc) { return NULL; } -inline Object *ObjectSet_FindFirst(ObjectSet *procList) { +CW_INLINE Object *ObjectSet_FindFirst(ObjectSet *procList) { IRO_ASSERT(552, procList != NULL); return procList->proc; } -inline int ObjectSet_Count(ObjectSet *procList) { +CW_INLINE int ObjectSet_Count(ObjectSet *procList) { int count; IRO_ASSERT(561, procList != NULL); @@ -478,7 +478,7 @@ inline int ObjectSet_Count(ObjectSet *procList) { return count; } -inline void ObjectSet_sub_486800(ObjectSet *procList, Object *proc) { +CW_INLINE void ObjectSet_sub_486800(ObjectSet *procList, Object *proc) { ObjectSet *newProcList; IRO_ASSERT(574, procList != NULL); @@ -495,7 +495,7 @@ inline void ObjectSet_sub_486800(ObjectSet *procList, Object *proc) { procList->proc = proc; } -inline void ObjectSet_sub_4867D0(ObjectSet *procList, Object *proc) { +CW_INLINE void ObjectSet_sub_4867D0(ObjectSet *procList, Object *proc) { IRO_ASSERT(592, procList != NULL); IRO_ASSERT(593, proc != NULL); @@ -503,7 +503,7 @@ inline void ObjectSet_sub_4867D0(ObjectSet *procList, Object *proc) { ObjectSet_sub_486800(procList, proc); } -inline void ObjectSet_Remove(ObjectSet *procList, Object *proc) { +CW_INLINE void ObjectSet_Remove(ObjectSet *procList, Object *proc) { ObjectSet *prev; ObjectSet *tmp; @@ -539,28 +539,28 @@ inline void ObjectSet_Remove(ObjectSet *procList, Object *proc) { } } -inline void ObjectSet_RemoveAll(ObjectSet *procList) { +CW_INLINE void ObjectSet_RemoveAll(ObjectSet *procList) { IRO_ASSERT(645, procList != NULL); while (procList && procList->proc) ObjectSet_Remove(procList, procList->proc); } -inline void ObjectSet_AddSetAction(Object *proc, void *refcon) { +CW_INLINE void ObjectSet_AddSetAction(Object *proc, void *refcon) { IRO_ASSERT(655, proc != NULL); IRO_ASSERT(656, refcon != NULL); ObjectSet_sub_4867D0(refcon, proc); } -inline void ObjectSet_SimpleAddSetAction(Object *proc, void *refcon) { +CW_INLINE void ObjectSet_SimpleAddSetAction(Object *proc, void *refcon) { IRO_ASSERT(663, proc != NULL); IRO_ASSERT(664, refcon != NULL); ObjectSet_sub_486800(refcon, proc); } -inline void ObjectSet_sub_48C590(ObjectSet *dest, ObjectSet *src) { +CW_INLINE void ObjectSet_sub_48C590(ObjectSet *dest, ObjectSet *src) { IRO_ASSERT(671, dest != NULL); IRO_ASSERT(672, src != NULL); @@ -570,21 +570,21 @@ inline void ObjectSet_sub_48C590(ObjectSet *dest, ObjectSet *src) { ObjectSet_ForEach(src, ObjectSet_SimpleAddSetAction, dest); } -inline void ObjectSet_RemoveSetAction(Object *proc, void *refcon) { +CW_INLINE void ObjectSet_RemoveSetAction(Object *proc, void *refcon) { IRO_ASSERT(682, proc != NULL); IRO_ASSERT(683, refcon != NULL); ObjectSet_Remove(refcon, proc); } -inline void ObjectSet_removeiter_sub_48C890(ObjectSet *dest, ObjectSet *src) { +CW_INLINE void ObjectSet_removeiter_sub_48C890(ObjectSet *dest, ObjectSet *src) { IRO_ASSERT(690, dest != NULL); IRO_ASSERT(691, src != NULL); ObjectSet_ForEach(src, ObjectSet_RemoveSetAction, dest); } -inline Boolean ObjectSet_sub_484FA0(ObjectSet *os1, ObjectSet *os2) { +CW_INLINE Boolean ObjectSet_sub_484FA0(ObjectSet *os1, ObjectSet *os2) { ObjectSet *scan; IRO_ASSERT(700, os1 != NULL); @@ -606,7 +606,7 @@ inline Boolean ObjectSet_sub_484FA0(ObjectSet *os1, ObjectSet *os2) { return 1; } -inline ExtendedParam *ExtendedParam_New(void) { +CW_INLINE ExtendedParam *ExtendedParam_New(void) { ExtendedParam *ep = IRO_malloc(sizeof(ExtendedParam)); IRO_ASSERT(755, ep != NULL); @@ -616,14 +616,14 @@ inline ExtendedParam *ExtendedParam_New(void) { return ep; } -inline void ExtendedParam_Delete(ExtendedParam *ep) { +CW_INLINE void ExtendedParam_Delete(ExtendedParam *ep) { IRO_ASSERT(762, ep != NULL); IRO_ASSERT(763, ep->objectSet == NULL); IRO_DEBUG_CLEAR(ep, sizeof(ExtendedParam)); IRO_free(ep); } -inline void ExtendedParam_Init(ExtendedParam *ep, Object *obj) { +CW_INLINE void ExtendedParam_Init(ExtendedParam *ep, Object *obj) { IRO_ASSERT(777, ep != NULL); IRO_ASSERT(778, obj != NULL); IRO_ASSERT(779, obj->extParam == NULL); @@ -637,11 +637,11 @@ inline void ExtendedParam_Init(ExtendedParam *ep, Object *obj) { ep->x4 = stExtendedParamNum++; } -inline void ExtendedParam_TermAction(Object *obj, void *refcon) { +CW_INLINE void ExtendedParam_TermAction(Object *obj, void *refcon) { obj->extParam = NULL; } -inline void ExtendedParam_Term(ExtendedParam *ep) { +CW_INLINE void ExtendedParam_Term(ExtendedParam *ep) { IRO_ASSERT(800, ep != NULL); ObjectSet_ForEach(ep->objectSet, ExtendedParam_TermAction, NULL); @@ -652,7 +652,7 @@ inline void ExtendedParam_Term(ExtendedParam *ep) { #endif } -inline Boolean ExtendedParams_Equal(ExtendedParam *ep1, ExtendedParam *ep2) { +CW_INLINE Boolean ExtendedParams_Equal(ExtendedParam *ep1, ExtendedParam *ep2) { IRO_ASSERT(841, ep1 != NULL); IRO_ASSERT(842, ep2 != NULL); IRO_ASSERT(843, ep1->objectSet != NULL); @@ -664,13 +664,13 @@ inline Boolean ExtendedParams_Equal(ExtendedParam *ep1, ExtendedParam *ep2) { return ep1->x4 == ep2->x4 && ObjectSet_sub_484FA0(ep1->objectSet, ep2->objectSet); } -inline ExtendedParam *ExtendedParam_FindByObject(Object *obj) { +CW_INLINE ExtendedParam *ExtendedParam_FindByObject(Object *obj) { IRO_ASSERT(856, obj != NULL); return obj->extParam; } -inline void ExtendedParam_sub_4867B0(ExtendedParam *ep, Object *obj) { +CW_INLINE void ExtendedParam_sub_4867B0(ExtendedParam *ep, Object *obj) { IRO_ASSERT(863, ep != NULL); IRO_ASSERT(864, ep->objectSet != NULL); IRO_ASSERT(865, obj != NULL); @@ -679,11 +679,11 @@ inline void ExtendedParam_sub_4867B0(ExtendedParam *ep, Object *obj) { obj->extParam = ep; } -inline void ExtendedParam_RemoveObjectSetAction(Object *object, void *refcon) { +CW_INLINE void ExtendedParam_RemoveObjectSetAction(Object *object, void *refcon) { object->extParam = NULL; } -inline void EP_sub_48C850(ExtendedParam *ep, ObjectSet *objSet) { +CW_INLINE void EP_sub_48C850(ExtendedParam *ep, ObjectSet *objSet) { IRO_ASSERT(888, ep != NULL); IRO_ASSERT(889, ep->objectSet != NULL); IRO_ASSERT(890, objSet != NULL); @@ -692,19 +692,19 @@ inline void EP_sub_48C850(ExtendedParam *ep, ObjectSet *objSet) { ObjectSet_ForEach(objSet, ExtendedParam_RemoveObjectSetAction, NULL); } -inline ObjectSet *ExtendedParam_objectSet(ExtendedParam *ep) { +CW_INLINE ObjectSet *ExtendedParam_objectSet(ExtendedParam *ep) { IRO_ASSERT(898, ep != NULL); return ep->objectSet; } -inline uint32 ExtendedParam_sub_489110(ExtendedParam *ep) { +CW_INLINE uint32 ExtendedParam_sub_489110(ExtendedParam *ep) { IRO_ASSERT(905, ep != NULL); return ep->x4; } -inline ExtendedParamSet *AllocsExtParamSet_sub_4876C0(void) { +CW_INLINE ExtendedParamSet *AllocsExtParamSet_sub_4876C0(void) { ExtendedParamSet *epList = IRO_malloc(sizeof(ExtendedParamSet)); IRO_ASSERT(924, epList != NULL); @@ -715,7 +715,7 @@ inline ExtendedParamSet *AllocsExtParamSet_sub_4876C0(void) { return epList; } -inline void FreesExtParamSet_sub_48CAE0(ExtendedParamSet *epList) { +CW_INLINE void FreesExtParamSet_sub_48CAE0(ExtendedParamSet *epList) { IRO_ASSERT(936, epList != NULL); IRO_ASSERT(937, epList->ep == NULL); IRO_ASSERT(938, epList->otherEps == NULL); @@ -723,13 +723,13 @@ inline void FreesExtParamSet_sub_48CAE0(ExtendedParamSet *epList) { IRO_free(epList); } -inline void InitsExtParamSet_sub_4876A0(ExtendedParamSet *epList) { +CW_INLINE void InitsExtParamSet_sub_4876A0(ExtendedParamSet *epList) { IRO_ASSERT(948, epList != NULL); epList->ep = NULL; epList->otherEps = NULL; } -inline void TermsExtParamSet_sub_48CB00(ExtendedParamSet *epList) { +CW_INLINE void TermsExtParamSet_sub_48CB00(ExtendedParamSet *epList) { IRO_ASSERT(966, epList != NULL); ExtendedParamSet_RemoveAll(epList); #ifdef IRO_DEBUG @@ -738,7 +738,7 @@ inline void TermsExtParamSet_sub_48CB00(ExtendedParamSet *epList) { #endif } -inline void MaybeWalkExtParamSet_sub_48CBE0(ExtendedParamSet *epList, void (*action)(ExtendedParam *, void *), void *refcon) { +CW_INLINE void MaybeWalkExtParamSet_sub_48CBE0(ExtendedParamSet *epList, void (*action)(ExtendedParam *, void *), void *refcon) { IRO_ASSERT(1010, epList != NULL); IRO_ASSERT(1011, action != NULL); @@ -748,7 +748,7 @@ inline void MaybeWalkExtParamSet_sub_48CBE0(ExtendedParamSet *epList, void (*act } } -inline ExtendedParam *ExtParamSet_sub_4876D0(ExtendedParamSet *epList, ExtendedParam *ep) { +CW_INLINE ExtendedParam *ExtParamSet_sub_4876D0(ExtendedParamSet *epList, ExtendedParam *ep) { IRO_ASSERT(1022, epList != NULL); IRO_ASSERT(1023, ep != NULL); @@ -761,7 +761,7 @@ inline ExtendedParam *ExtParamSet_sub_4876D0(ExtendedParamSet *epList, ExtendedP return NULL; } -inline void ExtParamSet_sub_487660(ExtendedParamSet *epList, ExtendedParam *ep) { +CW_INLINE void ExtParamSet_sub_487660(ExtendedParamSet *epList, ExtendedParam *ep) { IRO_ASSERT(1056, epList != NULL); IRO_ASSERT(1057, ep != NULL); @@ -776,7 +776,7 @@ inline void ExtParamSet_sub_487660(ExtendedParamSet *epList, ExtendedParam *ep) epList->ep = ep; } -inline void ExtParamSet_sub_487630(ExtendedParamSet *epList, ExtendedParam *ep) { +CW_INLINE void ExtParamSet_sub_487630(ExtendedParamSet *epList, ExtendedParam *ep) { IRO_ASSERT(1076, epList != NULL); IRO_ASSERT(1077, ep != NULL); @@ -784,7 +784,7 @@ inline void ExtParamSet_sub_487630(ExtendedParamSet *epList, ExtendedParam *ep) ExtParamSet_sub_487660(epList, ep); } -inline void ExtendedParamSet_Remove(ExtendedParamSet *epList, ExtendedParam *ep) { +CW_INLINE void ExtendedParamSet_Remove(ExtendedParamSet *epList, ExtendedParam *ep) { ExtendedParamSet *prev; ExtendedParamSet *tmp; @@ -820,14 +820,14 @@ inline void ExtendedParamSet_Remove(ExtendedParamSet *epList, ExtendedParam *ep) } } -inline void ExtendedParamSet_RemoveAll(ExtendedParamSet *epList) { +CW_INLINE void ExtendedParamSet_RemoveAll(ExtendedParamSet *epList) { IRO_ASSERT(1129, epList != NULL); while (epList && epList->ep) ExtendedParamSet_Remove(epList, epList->ep); } -inline PAHeapBlock *CreateUniqueHeapAlloc_sub_486420(void) { +CW_INLINE PAHeapBlock *CreateUniqueHeapAlloc_sub_486420(void) { PAHeapBlock *hb = IRO_malloc(sizeof(PAHeapBlock)); IRO_ASSERT(1225, hb != NULL); @@ -837,20 +837,20 @@ inline PAHeapBlock *CreateUniqueHeapAlloc_sub_486420(void) { return hb; } -inline void InitUniqueHeapAlloc_sub_486410(PAHeapBlock *hb, IROLinear *nd) { +CW_INLINE void InitUniqueHeapAlloc_sub_486410(PAHeapBlock *hb, IROLinear *nd) { IRO_ASSERT(1247, hb != NULL); hb->x0 = nd; } -inline Boolean PAHeapBlocks_Equal(PAHeapBlock *hb1, PAHeapBlock *hb2) { +CW_INLINE Boolean PAHeapBlocks_Equal(PAHeapBlock *hb1, PAHeapBlock *hb2) { IRO_ASSERT(1296, hb1 != NULL); IRO_ASSERT(1297, hb2 != NULL); return (hb1 == hb2) || (hb1->x0 == hb2->x0); } -inline PALocalVar *PALocalVar_New(void) { +CW_INLINE PALocalVar *PALocalVar_New(void) { PALocalVar *local = IRO_malloc(sizeof(PALocalVar)); IRO_ASSERT(1333, local != NULL); @@ -861,7 +861,7 @@ inline PALocalVar *PALocalVar_New(void) { return local; } -inline void PALocalVar_InitByObject(PALocalVar *local, Object *obj) { +CW_INLINE void PALocalVar_InitByObject(PALocalVar *local, Object *obj) { IRO_ASSERT(1357, local != NULL); IRO_ASSERT(1358, obj != NULL); @@ -874,7 +874,7 @@ inline void PALocalVar_InitByObject(PALocalVar *local, Object *obj) { } } -inline void PALocalVar_InitByName(PALocalVar *local, char *name) { +CW_INLINE void PALocalVar_InitByName(PALocalVar *local, char *name) { IRO_ASSERT(1372, local != NULL); IRO_ASSERT(1373, name != NULL); @@ -883,7 +883,7 @@ inline void PALocalVar_InitByName(PALocalVar *local, char *name) { strcpy(local->x4, name); } -inline Boolean PALocalVars_Equal(PALocalVar *local1, PALocalVar *local2) { +CW_INLINE Boolean PALocalVars_Equal(PALocalVar *local1, PALocalVar *local2) { IRO_ASSERT(1419, local1 == NULL || local1 != NULL); IRO_ASSERT(1420, local2 == NULL || local2 != NULL); @@ -900,24 +900,24 @@ inline Boolean PALocalVars_Equal(PALocalVar *local1, PALocalVar *local2) { return local1->x0 == local2->x0; } -inline void PALocalVar_SetSth_sub_4847C0(PALocalVar *local, Object *obj) { +CW_INLINE void PALocalVar_SetSth_sub_4847C0(PALocalVar *local, Object *obj) { IRO_ASSERT(1436, local != NULL); IRO_ASSERT(1437, obj == NULL || obj != NULL); local->x0 = obj; } -inline Object *PALocalVar_Get0_sub_4847E0(PALocalVar *local) { +CW_INLINE Object *PALocalVar_Get0_sub_4847E0(PALocalVar *local) { IRO_ASSERT(1444, local != NULL); return local->x0; } -inline char *PALocalVar_Get4_sub_4847D0(PALocalVar *local) { +CW_INLINE char *PALocalVar_Get4_sub_4847D0(PALocalVar *local) { IRO_ASSERT(1451, local != NULL); return local->x4; } -inline PAMemoryBlock *PAMemoryBlock_New(void) { +CW_INLINE PAMemoryBlock *PAMemoryBlock_New(void) { PAMemoryBlock *mb = IRO_malloc(sizeof(PAMemoryBlock)); IRO_ASSERT(1491, mb != NULL); @@ -927,13 +927,13 @@ inline PAMemoryBlock *PAMemoryBlock_New(void) { return mb; } -inline void PAMemoryBlock_Delete(PAMemoryBlock *mb) { +CW_INLINE void PAMemoryBlock_Delete(PAMemoryBlock *mb) { IRO_ASSERT(1502, mb != NULL); IRO_ASSERT(1503, mb->kind == PAMEMORYBLOCKKIND_INVALID); IRO_free(mb); } -inline void PAMemoryBlock_Init(PAMemoryBlock *mb, PAMemoryBlockKind kind, void *thing) { +CW_INLINE void PAMemoryBlock_Init(PAMemoryBlock *mb, PAMemoryBlockKind kind, void *thing) { IRO_ASSERT(1513, mb != NULL); IRO_ASSERT(1514, thing == NULL || thing != NULL); @@ -959,7 +959,7 @@ inline void PAMemoryBlock_Init(PAMemoryBlock *mb, PAMemoryBlockKind kind, void * } } -inline void PAMemoryBlock_Term(PAMemoryBlock *mb) { +CW_INLINE void PAMemoryBlock_Term(PAMemoryBlock *mb) { IRO_ASSERT(1552, mb != NULL); #ifdef IRO_DEBUG @@ -967,7 +967,7 @@ inline void PAMemoryBlock_Term(PAMemoryBlock *mb) { #endif } -inline Boolean MemoryBlocks_Equal(PAMemoryBlock *mb1, PAMemoryBlock *mb2) { +CW_INLINE Boolean MemoryBlocks_Equal(PAMemoryBlock *mb1, PAMemoryBlock *mb2) { IRO_ASSERT(1657, mb1 == NULL || mb1 != NULL); IRO_ASSERT(1658, mb2 == NULL || mb2 != NULL); @@ -994,13 +994,13 @@ inline Boolean MemoryBlocks_Equal(PAMemoryBlock *mb1, PAMemoryBlock *mb2) { } } -inline PAMemoryBlockKind PAMemoryBlock_kind(PAMemoryBlock *mb) { +CW_INLINE PAMemoryBlockKind PAMemoryBlock_kind(PAMemoryBlock *mb) { IRO_ASSERT(1692, mb != NULL); return mb->kind; } -inline void *PAMemoryBlock_thing(PAMemoryBlock *mb) { +CW_INLINE void *PAMemoryBlock_thing(PAMemoryBlock *mb) { IRO_ASSERT(1699, mb != NULL); switch (mb->kind) { @@ -1020,7 +1020,7 @@ inline void *PAMemoryBlock_thing(PAMemoryBlock *mb) { } } -inline LocationSet *LocationSet_New(void) { +CW_INLINE LocationSet *LocationSet_New(void) { LocationSet *ls = IRO_malloc(sizeof(LocationSet)); IRO_ASSERT(1767, ls != NULL); @@ -1033,7 +1033,7 @@ inline LocationSet *LocationSet_New(void) { return ls; } -inline void LocationSet_Delete(LocationSet *ls) { +CW_INLINE void LocationSet_Delete(LocationSet *ls) { IRO_ASSERT(1781, ls != NULL); IRO_ASSERT(1782, ls != stUnknownLs); IRO_ASSERT(1783, ls->block == NULL); @@ -1044,7 +1044,7 @@ inline void LocationSet_Delete(LocationSet *ls) { IRO_free(ls); } -inline void LocationSet_InitKnown(LocationSet *ls, PAMemoryBlock *block, CInt64 field, UInt32 stride, Type *rtype) { +CW_INLINE void LocationSet_InitKnown(LocationSet *ls, PAMemoryBlock *block, CInt64 field, UInt32 stride, Type *rtype) { IRO_ASSERT(1796, ls != NULL); IRO_ASSERT(1797, ls != stUnknownLs); IRO_ASSERT(1798, block != NULL); @@ -1055,7 +1055,7 @@ inline void LocationSet_InitKnown(LocationSet *ls, PAMemoryBlock *block, CInt64 ls->u.known.stride = stride; } -inline void LocationSet_InitUnknown(LocationSet *ls, Type *rtype, PAMemoryBlock *restriction, LocationSet *bitfieldOf) { +CW_INLINE void LocationSet_InitUnknown(LocationSet *ls, Type *rtype, PAMemoryBlock *restriction, LocationSet *bitfieldOf) { IRO_ASSERT(1809, ls != NULL); IRO_ASSERT(1810, ls != stUnknownLs); IRO_ASSERT(1811, rtype == NULL || rtype != NULL); @@ -1073,7 +1073,7 @@ inline void LocationSet_InitUnknown(LocationSet *ls, Type *rtype, PAMemoryBlock } } -inline void LocationSet_Copy(LocationSet *dest, LocationSet *src) { +CW_INLINE void LocationSet_Copy(LocationSet *dest, LocationSet *src) { IRO_ASSERT(1829, src != NULL); IRO_ASSERT(1830, dest != NULL); @@ -1094,7 +1094,7 @@ inline void LocationSet_Copy(LocationSet *dest, LocationSet *src) { } } -inline void LocationSet_Term(LocationSet *ls) { +CW_INLINE void LocationSet_Term(LocationSet *ls) { IRO_ASSERT(1857, ls != NULL); IRO_ASSERT(1858, ls != stUnknownLs); @@ -1110,7 +1110,7 @@ inline void LocationSet_Term(LocationSet *ls) { #endif } -inline Boolean LocationSets_Overlap(LocationSet *ls1, Type *rtype1, LocationSet *ls2, Type *rtype2) { +CW_INLINE Boolean LocationSets_Overlap(LocationSet *ls1, Type *rtype1, LocationSet *ls2, Type *rtype2) { Boolean isUnknown1, isUnknown2; PAMemoryBlock *restriction1, *restriction2; @@ -1212,7 +1212,7 @@ inline Boolean LocationSets_Overlap(LocationSet *ls1, Type *rtype1, LocationSet return 0; } -inline Boolean LocationSets_Equal(LocationSet *ls1, LocationSet *ls2) { +CW_INLINE Boolean LocationSets_Equal(LocationSet *ls1, LocationSet *ls2) { IRO_ASSERT(2080, ls1 != NULL); IRO_ASSERT(2081, ls2 != NULL); @@ -1234,7 +1234,7 @@ inline Boolean LocationSets_Equal(LocationSet *ls1, LocationSet *ls2) { ); } -inline Boolean LocationSets_LookupCompatible(LocationSet *ls1, LocationSet *ls2) { +CW_INLINE Boolean LocationSets_LookupCompatible(LocationSet *ls1, LocationSet *ls2) { IRO_ASSERT(2119, ls1 != NULL); IRO_ASSERT(2120, ls2 != NULL); @@ -1270,7 +1270,7 @@ inline Boolean LocationSets_LookupCompatible(LocationSet *ls1, LocationSet *ls2) return 0; } -inline Boolean LocationSet_Contains(LocationSet *ls1, Type *rtype1, LocationSet *ls2, Type *rtype2) { +CW_INLINE Boolean LocationSet_Contains(LocationSet *ls1, Type *rtype1, LocationSet *ls2, Type *rtype2) { Boolean unknown1; Boolean unknown2; PAMemoryBlock *restriction2; @@ -1314,13 +1314,13 @@ inline Boolean LocationSet_Contains(LocationSet *ls1, Type *rtype1, LocationSet MemoryBlocks_Equal(ls1->block, ls2->block); } -inline Boolean LocationSet_IsUnknown(LocationSet *ls) { +CW_INLINE Boolean LocationSet_IsUnknown(LocationSet *ls) { IRO_ASSERT(2233, ls != NULL); return (ls == stUnknownLs) || (ls->block == stUnknownMb); } -inline Boolean LocationSet_sub_48AF30(LocationSet *ls) { +CW_INLINE Boolean LocationSet_sub_48AF30(LocationSet *ls) { return !LocationSet_IsUnknown(ls) && (ls->u.known.stride == 0) && @@ -1329,7 +1329,7 @@ inline Boolean LocationSet_sub_48AF30(LocationSet *ls) { !PAMemoryBlock_thing(ls->block); } -inline void LocationSet_SetRtype(LocationSet *ls, Type *rtype) { +CW_INLINE void LocationSet_SetRtype(LocationSet *ls, Type *rtype) { IRO_ASSERT(2263, ls != NULL); IRO_ASSERT(2264, ls != stUnknownLs); IRO_ASSERT(2265, rtype != NULL); @@ -1337,62 +1337,62 @@ inline void LocationSet_SetRtype(LocationSet *ls, Type *rtype) { ls->rtype = rtype; } -inline void SetsLocationSetField_sub_4851B0(LocationSet *ls, CInt64 field) { +CW_INLINE void SetsLocationSetField_sub_4851B0(LocationSet *ls, CInt64 field) { IRO_ASSERT(2272, ls != NULL); IRO_ASSERT(2273, !LocationSet_IsUnknown(ls)); ls->u.known.field = field; } -inline void SetsLocationSetStride_sub_4852D0(LocationSet *ls, SInt32 stride) { +CW_INLINE void SetsLocationSetStride_sub_4852D0(LocationSet *ls, SInt32 stride) { IRO_ASSERT(2280, ls != NULL); IRO_ASSERT(2281, !LocationSet_IsUnknown(ls)); ls->u.known.stride = stride; } -inline PAMemoryBlock *LocationSet_block(LocationSet *ls) { +CW_INLINE PAMemoryBlock *LocationSet_block(LocationSet *ls) { IRO_ASSERT(2298, ls != NULL); return ls->block; } -inline Type *LocationSet_rtype(LocationSet *ls) { +CW_INLINE Type *LocationSet_rtype(LocationSet *ls) { IRO_ASSERT(2306, ls != NULL); IRO_ASSERT(2307, ls != stUnknownLs); return ls->rtype; } -inline CInt64 LocationSet_field(LocationSet *ls) { +CW_INLINE CInt64 LocationSet_field(LocationSet *ls) { IRO_ASSERT(2314, ls != NULL); IRO_ASSERT(2315, !LocationSet_IsUnknown(ls)); return ls->u.known.field; } -inline UInt32 LocationSet_stride(LocationSet *ls) { +CW_INLINE UInt32 LocationSet_stride(LocationSet *ls) { IRO_ASSERT(2322, ls != NULL); IRO_ASSERT(2323, !LocationSet_IsUnknown(ls)); return ls->u.known.stride; } -inline PAMemoryBlock *LocationSet_restriction(LocationSet *ls) { +CW_INLINE PAMemoryBlock *LocationSet_restriction(LocationSet *ls) { IRO_ASSERT(2330, ls != NULL); IRO_ASSERT(2331, LocationSet_IsUnknown(ls)); return ls->u.unknown.restriction; } -inline LocationSet *LocationSet_bitfieldOf(LocationSet *ls) { +CW_INLINE LocationSet *LocationSet_bitfieldOf(LocationSet *ls) { IRO_ASSERT(2338, ls != NULL); IRO_ASSERT(2339, LocationSet_IsUnknown(ls)); return ls->u.unknown.bitfieldOf; } -inline LocationSetSet *LocationSetSet_New(void) { +CW_INLINE LocationSetSet *LocationSetSet_New(void) { LocationSetSet *lss = IRO_malloc(sizeof(LocationSetSet)); IRO_ASSERT(2356, lss != NULL); @@ -1404,7 +1404,7 @@ inline LocationSetSet *LocationSetSet_New(void) { return lss; } -inline void LocationSetSet_Delete(LocationSetSet *lss) { +CW_INLINE void LocationSetSet_Delete(LocationSetSet *lss) { IRO_ASSERT(2369, lss != NULL); IRO_ASSERT(2370, lss->loc == NULL); IRO_ASSERT(2371, lss->otherLocs == NULL); @@ -1413,7 +1413,7 @@ inline void LocationSetSet_Delete(LocationSetSet *lss) { IRO_free(lss); } -inline void LocationSetSet_Init(LocationSetSet *lss) { +CW_INLINE void LocationSetSet_Init(LocationSetSet *lss) { IRO_ASSERT(2382, lss != NULL); lss->loc = NULL; @@ -1421,7 +1421,7 @@ inline void LocationSetSet_Init(LocationSetSet *lss) { lss->count = 0; } -inline void LocationSetSet_Copy(LocationSetSet *dest, LocationSetSet *src) { +CW_INLINE void LocationSetSet_Copy(LocationSetSet *dest, LocationSetSet *src) { IRO_ASSERT(2391, dest != NULL); IRO_ASSERT(2392, src != NULL); @@ -1431,7 +1431,7 @@ inline void LocationSetSet_Copy(LocationSetSet *dest, LocationSetSet *src) { LocationSetSet_AddSet(dest, src); } -inline void LocationSetSet_Term(LocationSetSet *lss) { +CW_INLINE void LocationSetSet_Term(LocationSetSet *lss) { IRO_ASSERT(2402, lss != NULL); LocationSetSet_RemoveAll(lss); @@ -1443,7 +1443,7 @@ inline void LocationSetSet_Term(LocationSetSet *lss) { #endif } -inline void LocationSetSet_ForEach(LocationSetSet *lss, void (*action)(LocationSet *, void *), void *refcon) { +CW_INLINE void LocationSetSet_ForEach(LocationSetSet *lss, void (*action)(LocationSet *, void *), void *refcon) { IRO_ASSERT(2446, lss != NULL); IRO_ASSERT(2447, action != NULL); IRO_ASSERT(2448, refcon == NULL || refcon != NULL); @@ -1454,7 +1454,7 @@ inline void LocationSetSet_ForEach(LocationSetSet *lss, void (*action)(LocationS } } -inline LocationSet *LocationSetSet_Find(LocationSetSet *lss, LocationSet *ls) { +CW_INLINE LocationSet *LocationSetSet_Find(LocationSetSet *lss, LocationSet *ls) { IRO_ASSERT(2458, lss != NULL); IRO_ASSERT(2459, ls != NULL); @@ -1467,7 +1467,7 @@ inline LocationSet *LocationSetSet_Find(LocationSetSet *lss, LocationSet *ls) { return NULL; } -inline LocationSet *LocationSetSet_FindUnknown(LocationSetSet *lss) { +CW_INLINE LocationSet *LocationSetSet_FindUnknown(LocationSetSet *lss) { IRO_ASSERT(2470, lss != NULL); if (!lss->loc) @@ -1482,19 +1482,19 @@ inline LocationSet *LocationSetSet_FindUnknown(LocationSetSet *lss) { return NULL; } -inline LocationSet *LocationSetSet_FindFirst(LocationSetSet *lss) { +CW_INLINE LocationSet *LocationSetSet_FindFirst(LocationSetSet *lss) { IRO_ASSERT(2498, lss != NULL); return lss->loc; } -inline int LocationSetSet_Count(LocationSetSet *lss) { +CW_INLINE int LocationSetSet_Count(LocationSetSet *lss) { IRO_ASSERT(2505, lss != NULL); return lss->count; } -inline void LocationSetSet_RemoveAllWithMemoryBlock(LocationSetSet *lss, PAMemoryBlock *block) { +CW_INLINE void LocationSetSet_RemoveAllWithMemoryBlock(LocationSetSet *lss, PAMemoryBlock *block) { LocationSetSet *first; LocationSetSet *prev; LocationSetSet *next; @@ -1541,7 +1541,7 @@ inline void LocationSetSet_RemoveAllWithMemoryBlock(LocationSetSet *lss, PAMemor } } -inline void LocationSetSet_SimpleAdd(LocationSetSet *lss, LocationSet *ls) { +CW_INLINE void LocationSetSet_SimpleAdd(LocationSetSet *lss, LocationSet *ls) { IRO_ASSERT(2572, lss != NULL); IRO_ASSERT(2573, ls != NULL); @@ -1583,7 +1583,7 @@ inline void LocationSetSet_SimpleAdd(LocationSetSet *lss, LocationSet *ls) { } } -inline void LocationSetSet_Add(LocationSetSet *lss, LocationSet *ls) { +CW_INLINE void LocationSetSet_Add(LocationSetSet *lss, LocationSet *ls) { IRO_ASSERT(2622, lss != NULL); IRO_ASSERT(2623, ls != NULL); @@ -1594,7 +1594,7 @@ inline void LocationSetSet_Add(LocationSetSet *lss, LocationSet *ls) { } } -inline void LocationSetSet_AddUnknown(LocationSetSet *lss, Type *rtype, PAMemoryBlock *restriction, LocationSet *bitfieldOf) { +CW_INLINE void LocationSetSet_AddUnknown(LocationSetSet *lss, Type *rtype, PAMemoryBlock *restriction, LocationSet *bitfieldOf) { LocationSet *ls; IRO_ASSERT(2643, lss != NULL); @@ -1609,7 +1609,7 @@ inline void LocationSetSet_AddUnknown(LocationSetSet *lss, Type *rtype, PAMemory LocationSet_Delete(ls); } -inline void LocationSetSet_Remove(LocationSetSet *lss, LocationSet *ls) { +CW_INLINE void LocationSetSet_Remove(LocationSetSet *lss, LocationSet *ls) { LocationSetSet *prev; LocationSetSet *first; LocationSetSet *tmp; @@ -1653,28 +1653,28 @@ inline void LocationSetSet_Remove(LocationSetSet *lss, LocationSet *ls) { } } -inline void LocationSetSet_RemoveAll(LocationSetSet *lss) { +CW_INLINE void LocationSetSet_RemoveAll(LocationSetSet *lss) { IRO_ASSERT(2707, lss != NULL); while (lss && lss->loc) LocationSetSet_Remove(lss, lss->loc); } -inline void LocationSetSet_AddSetAction(LocationSet *ls, void *refcon) { +CW_INLINE void LocationSetSet_AddSetAction(LocationSet *ls, void *refcon) { IRO_ASSERT(2717, ls != NULL); IRO_ASSERT(2718, refcon != NULL); LocationSetSet_Add((LocationSetSet *) refcon, ls); } -inline void LocationSetSet_SimpleAddSetAction(LocationSet *ls, void *refcon) { +CW_INLINE void LocationSetSet_SimpleAddSetAction(LocationSet *ls, void *refcon) { IRO_ASSERT(2725, ls != NULL); IRO_ASSERT(2726, refcon != NULL); LocationSetSet_SimpleAdd((LocationSetSet *) refcon, ls); } -inline void LocationSetSet_AddSet(LocationSetSet *dest, LocationSetSet *src) { +CW_INLINE void LocationSetSet_AddSet(LocationSetSet *dest, LocationSetSet *src) { IRO_ASSERT(2733, dest != NULL); IRO_ASSERT(2734, src != NULL); @@ -1684,21 +1684,21 @@ inline void LocationSetSet_AddSet(LocationSetSet *dest, LocationSetSet *src) { LocationSetSet_ForEach(src, LocationSetSet_SimpleAddSetAction, dest); } -inline void LocationSetSet_RemoveSetAction(LocationSet *ls, void *refcon) { +CW_INLINE void LocationSetSet_RemoveSetAction(LocationSet *ls, void *refcon) { IRO_ASSERT(2744, ls != NULL); IRO_ASSERT(2745, refcon != NULL); LocationSetSet_Remove((LocationSetSet *) refcon, ls); } -inline void LocationSetSet_sub_488700(LocationSetSet *dest, LocationSetSet *src) { +CW_INLINE void LocationSetSet_sub_488700(LocationSetSet *dest, LocationSetSet *src) { IRO_ASSERT(2752, dest != NULL); IRO_ASSERT(2753, src != NULL); LocationSetSet_ForEach(src, LocationSetSet_RemoveSetAction, dest); } -inline Boolean LocationSetSets_Equal(LocationSetSet *lss1, LocationSetSet *lss2) { +CW_INLINE Boolean LocationSetSets_Equal(LocationSetSet *lss1, LocationSetSet *lss2) { IRO_ASSERT(2826, lss1 != NULL); IRO_ASSERT(2827, lss2 != NULL); @@ -1716,7 +1716,7 @@ inline Boolean LocationSetSets_Equal(LocationSetSet *lss1, LocationSetSet *lss2) return 1; } -inline ParamMapping *ParamMapping_New(void) { +CW_INLINE ParamMapping *ParamMapping_New(void) { ParamMapping *pm = IRO_malloc(sizeof(ParamMapping)); IRO_ASSERT(2885, pm != NULL); @@ -1728,7 +1728,7 @@ inline ParamMapping *ParamMapping_New(void) { return pm; } -inline void ParamMapping_Delete(ParamMapping *pm) { +CW_INLINE void ParamMapping_Delete(ParamMapping *pm) { IRO_ASSERT(2898, pm != NULL); IRO_ASSERT(2899, pm->actual == NULL); IRO_ASSERT(2900, pm->formal == NULL); @@ -1737,7 +1737,7 @@ inline void ParamMapping_Delete(ParamMapping *pm) { IRO_free(pm); } -inline void ParamMapping_Init_PROBABLY(ParamMapping *pm, IROLinear *actual, Object *formal, ExtendedParam *extended) { +CW_INLINE void ParamMapping_Init_PROBABLY(ParamMapping *pm, IROLinear *actual, Object *formal, ExtendedParam *extended) { IRO_ASSERT(2911, pm != NULL); pm->actual = actual; @@ -1745,7 +1745,7 @@ inline void ParamMapping_Init_PROBABLY(ParamMapping *pm, IROLinear *actual, Obje pm->extended = extended; } -inline void ParamMapping_Copy(ParamMapping *dest, ParamMapping *src) { +CW_INLINE void ParamMapping_Copy(ParamMapping *dest, ParamMapping *src) { IRO_ASSERT(2920, src != NULL); IRO_ASSERT(2921, dest != NULL); @@ -1754,7 +1754,7 @@ inline void ParamMapping_Copy(ParamMapping *dest, ParamMapping *src) { dest->extended = src->extended; } -inline void ParamMapping_Term(ParamMapping *pm) { +CW_INLINE void ParamMapping_Term(ParamMapping *pm) { IRO_ASSERT(2933, pm != NULL); #ifdef IRO_DEBUG @@ -1764,25 +1764,25 @@ inline void ParamMapping_Term(ParamMapping *pm) { #endif } -inline void ParamMapping_SetExtended(ParamMapping *pm, ExtendedParam *ep) { +CW_INLINE void ParamMapping_SetExtended(ParamMapping *pm, ExtendedParam *ep) { IRO_ASSERT(2992, pm != NULL); pm->extended = ep; } -inline IROLinear *ParamMapping_actual(ParamMapping *pm) { +CW_INLINE IROLinear *ParamMapping_actual(ParamMapping *pm) { IRO_ASSERT(2999, pm != NULL); return pm->actual; } -inline ExtendedParam *ParamMapping_extended(ParamMapping *pm) { +CW_INLINE ExtendedParam *ParamMapping_extended(ParamMapping *pm) { IRO_ASSERT(3011, pm != NULL); return pm->extended; } -inline ParamMappingFunction *ParamMappingFunction_New(void) { +CW_INLINE ParamMappingFunction *ParamMappingFunction_New(void) { ParamMappingFunction *pmf = IRO_malloc(sizeof(ParamMappingFunction)); IRO_ASSERT(3026, pmf != NULL); @@ -1793,7 +1793,7 @@ inline ParamMappingFunction *ParamMappingFunction_New(void) { return pmf; } -inline void ParamMappingFunction_Delete(ParamMappingFunction *pmf) { +CW_INLINE void ParamMappingFunction_Delete(ParamMappingFunction *pmf) { IRO_ASSERT(3039, pmf != NULL); IRO_ASSERT(3040, pmf->mapping == NULL); IRO_ASSERT(3041, pmf->otherMappings == NULL); @@ -1801,14 +1801,14 @@ inline void ParamMappingFunction_Delete(ParamMappingFunction *pmf) { IRO_free(pmf); } -inline void ParamMappingFunction_Init(ParamMappingFunction *pmf) { +CW_INLINE void ParamMappingFunction_Init(ParamMappingFunction *pmf) { IRO_ASSERT(3050, pmf != NULL); pmf->mapping = NULL; pmf->otherMappings = NULL; } -inline void ParamMappingFunction_Copy(ParamMappingFunction *dest, ParamMappingFunction *src) { +CW_INLINE void ParamMappingFunction_Copy(ParamMappingFunction *dest, ParamMappingFunction *src) { IRO_ASSERT(3058, src != NULL); IRO_ASSERT(3059, dest != NULL); @@ -1817,7 +1817,7 @@ inline void ParamMappingFunction_Copy(ParamMappingFunction *dest, ParamMappingFu ParamMappingFunction_AddAllMaybe_sub_487C50(dest, src); } -inline void ParamMappingFunction_Term(ParamMappingFunction *pmf) { +CW_INLINE void ParamMappingFunction_Term(ParamMappingFunction *pmf) { IRO_ASSERT(3068, pmf != NULL); ParamMappingFunction_RemoveAll(pmf); @@ -1828,7 +1828,7 @@ inline void ParamMappingFunction_Term(ParamMappingFunction *pmf) { #endif } -inline void pmf_sub_487C70(ParamMappingFunction *pmf, void (*action)(ParamMapping *, void *), void *refcon) { +CW_INLINE void pmf_sub_487C70(ParamMappingFunction *pmf, void (*action)(ParamMapping *, void *), void *refcon) { IRO_ASSERT(3111, pmf != NULL); IRO_ASSERT(3112, action != NULL); IRO_ASSERT(3113, refcon == NULL || refcon != NULL); @@ -1839,7 +1839,7 @@ inline void pmf_sub_487C70(ParamMappingFunction *pmf, void (*action)(ParamMappin } } -inline ParamMapping *ParamMappingFunction_FindMappingByFormal(ParamMappingFunction *pmf, Object *formal) { +CW_INLINE ParamMapping *ParamMappingFunction_FindMappingByFormal(ParamMappingFunction *pmf, Object *formal) { IRO_ASSERT(3123, pmf != NULL); IRO_ASSERT(3124, formal != NULL); @@ -1852,7 +1852,7 @@ inline ParamMapping *ParamMappingFunction_FindMappingByFormal(ParamMappingFuncti return NULL; } -inline void Pmf_Add_sub_486610(ParamMappingFunction *pmf, ParamMapping *mapping) { +CW_INLINE void Pmf_Add_sub_486610(ParamMappingFunction *pmf, ParamMapping *mapping) { ParamMapping *existing; IRO_ASSERT(3138, pmf != NULL); @@ -1876,7 +1876,7 @@ inline void Pmf_Add_sub_486610(ParamMappingFunction *pmf, ParamMapping *mapping) } } -inline void ParamMappingFunction_Remove(ParamMappingFunction *pmf, ParamMapping *mapping) { +CW_INLINE void ParamMappingFunction_Remove(ParamMappingFunction *pmf, ParamMapping *mapping) { ParamMappingFunction *prev; ParamMappingFunction *tmp; @@ -1915,28 +1915,28 @@ inline void ParamMappingFunction_Remove(ParamMappingFunction *pmf, ParamMapping } } -inline void ParamMappingFunction_RemoveAll(ParamMappingFunction *pmf) { +CW_INLINE void ParamMappingFunction_RemoveAll(ParamMappingFunction *pmf) { IRO_ASSERT(3213, pmf != NULL); while (pmf && pmf->mapping) ParamMappingFunction_Remove(pmf, pmf->mapping); } -inline void ParamMappingFunction_AddFunctionAction(ParamMapping *mapping, void *refcon) { +CW_INLINE void ParamMappingFunction_AddFunctionAction(ParamMapping *mapping, void *refcon) { IRO_ASSERT(3223, mapping != NULL); IRO_ASSERT(3224, refcon != NULL); Pmf_Add_sub_486610((ParamMappingFunction *) refcon, mapping); } -inline void ParamMappingFunction_AddAllMaybe_sub_487C50(ParamMappingFunction *dest, ParamMappingFunction *src) { +CW_INLINE void ParamMappingFunction_AddAllMaybe_sub_487C50(ParamMappingFunction *dest, ParamMappingFunction *src) { IRO_ASSERT(3231, dest != NULL); IRO_ASSERT(3232, src != NULL); pmf_sub_487C70(src, ParamMappingFunction_AddFunctionAction, dest); } -inline PointsToEntry *PointsToEntry_New(void) { +CW_INLINE PointsToEntry *PointsToEntry_New(void) { PointsToEntry *pte = IRO_malloc(sizeof(PointsToEntry)); IRO_ASSERT(3288, pte != NULL); @@ -1947,7 +1947,7 @@ inline PointsToEntry *PointsToEntry_New(void) { return pte; } -inline void PointsToEntry_Delete(PointsToEntry *pte) { +CW_INLINE void PointsToEntry_Delete(PointsToEntry *pte) { IRO_ASSERT(3300, pte != NULL); IRO_ASSERT(3301, pte->loc == NULL); IRO_ASSERT(3302, pte->locs == NULL); @@ -1955,7 +1955,7 @@ inline void PointsToEntry_Delete(PointsToEntry *pte) { IRO_free(pte); } -inline void PointsToEntry_Init(PointsToEntry *pte, LocationSet *loc, LocationSetSet *locs) { +CW_INLINE void PointsToEntry_Init(PointsToEntry *pte, LocationSet *loc, LocationSetSet *locs) { IRO_ASSERT(3312, pte != NULL); IRO_ASSERT(3313, loc != NULL); IRO_ASSERT(3314, !LocationSet_IsUnknown(loc)); @@ -1968,14 +1968,14 @@ inline void PointsToEntry_Init(PointsToEntry *pte, LocationSet *loc, LocationSet LocationSetSet_Copy(pte->locs, locs); } -inline void PointsToEntry_Copy(PointsToEntry *dest, PointsToEntry *src) { +CW_INLINE void PointsToEntry_Copy(PointsToEntry *dest, PointsToEntry *src) { IRO_ASSERT(3325, src != NULL); IRO_ASSERT(3326, dest != NULL); PointsToEntry_Init(dest, src->loc, src->locs); } -inline void PointsToEntry_Term(PointsToEntry *pte) { +CW_INLINE void PointsToEntry_Term(PointsToEntry *pte) { IRO_ASSERT(3333, pte != NULL); LocationSet_Term(pte->loc); @@ -1989,7 +1989,7 @@ inline void PointsToEntry_Term(PointsToEntry *pte) { #endif } -inline Boolean PointsToEntries_Equal(PointsToEntry *pte1, PointsToEntry *pte2) { +CW_INLINE Boolean PointsToEntries_Equal(PointsToEntry *pte1, PointsToEntry *pte2) { IRO_ASSERT(3381, pte1 != NULL); IRO_ASSERT(3382, pte2 != NULL); @@ -1999,19 +1999,19 @@ inline Boolean PointsToEntries_Equal(PointsToEntry *pte1, PointsToEntry *pte2) { return LocationSets_Equal(pte1->loc, pte2->loc) && LocationSetSets_Equal(pte1->locs, pte2->locs); } -inline LocationSet *PointsToEntry_loc(PointsToEntry *pte) { +CW_INLINE LocationSet *PointsToEntry_loc(PointsToEntry *pte) { IRO_ASSERT(3407, pte != NULL); return pte->loc; } -inline LocationSetSet *PointsToEntry_locs(PointsToEntry *pte) { +CW_INLINE LocationSetSet *PointsToEntry_locs(PointsToEntry *pte) { IRO_ASSERT(3414, pte != NULL); return pte->locs; } -inline PointsToFunction *PointsToFunction_New(void) { +CW_INLINE PointsToFunction *PointsToFunction_New(void) { PointsToFunction *pointsToFunc = IRO_malloc(sizeof(PointsToFunction)); IRO_ASSERT(3430, pointsToFunc != NULL); @@ -2022,7 +2022,7 @@ inline PointsToFunction *PointsToFunction_New(void) { return pointsToFunc; } -inline void PointsToFunction_Delete(PointsToFunction *pointsToFunc) { +CW_INLINE void PointsToFunction_Delete(PointsToFunction *pointsToFunc) { IRO_ASSERT(3442, pointsToFunc != NULL); IRO_ASSERT(3443, pointsToFunc->pte == NULL); IRO_ASSERT(3444, pointsToFunc->otherPtes == NULL); @@ -2030,14 +2030,14 @@ inline void PointsToFunction_Delete(PointsToFunction *pointsToFunc) { IRO_free(pointsToFunc); } -inline void PointsToFunction_Init(PointsToFunction *pointsToFunc) { +CW_INLINE void PointsToFunction_Init(PointsToFunction *pointsToFunc) { IRO_ASSERT(3454, pointsToFunc != NULL); pointsToFunc->pte = NULL; pointsToFunc->otherPtes = NULL; } -inline void PointsToFunction_Copy(PointsToFunction *dest, PointsToFunction *src) { +CW_INLINE void PointsToFunction_Copy(PointsToFunction *dest, PointsToFunction *src) { IRO_ASSERT(3462, src != NULL); IRO_ASSERT(3463, dest != NULL); @@ -2046,7 +2046,7 @@ inline void PointsToFunction_Copy(PointsToFunction *dest, PointsToFunction *src) PointsToFunction_AddAllIGuess_sub_487D80(dest, src); } -inline void PointsToFunction_Term(PointsToFunction *pointsToFunc) { +CW_INLINE void PointsToFunction_Term(PointsToFunction *pointsToFunc) { IRO_ASSERT(3472, pointsToFunc != NULL); PointsToFunction_RemoveAll(pointsToFunc); @@ -2057,7 +2057,7 @@ inline void PointsToFunction_Term(PointsToFunction *pointsToFunc) { #endif } -inline void PointsToFunction_ForEach(PointsToFunction *pointsToFunc, void (*action)(PointsToEntry *, void *), void *refcon) { +CW_INLINE void PointsToFunction_ForEach(PointsToFunction *pointsToFunc, void (*action)(PointsToEntry *, void *), void *refcon) { IRO_ASSERT(3515, pointsToFunc != NULL); IRO_ASSERT(3516, action != NULL); IRO_ASSERT(3517, refcon == NULL || refcon != NULL); @@ -2068,7 +2068,7 @@ inline void PointsToFunction_ForEach(PointsToFunction *pointsToFunc, void (*acti } } -inline PointsToEntry *PointsToFunction_FindByLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls) { +CW_INLINE PointsToEntry *PointsToFunction_FindByLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls) { IRO_ASSERT(3527, pointsToFunc != NULL); IRO_ASSERT(3528, ls != NULL); @@ -2081,13 +2081,13 @@ inline PointsToEntry *PointsToFunction_FindByLocationSet(PointsToFunction *point return NULL; } -inline PointsToEntry *PointsToFunction_FindFirst(PointsToFunction *pointsToFunc) { +CW_INLINE PointsToEntry *PointsToFunction_FindFirst(PointsToFunction *pointsToFunc) { IRO_ASSERT(3539, pointsToFunc != NULL); return pointsToFunc->pte; } -inline PointsToEntry *PointsToFunction_FindByLookupCompatibleLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls) { +CW_INLINE PointsToEntry *PointsToFunction_FindByLookupCompatibleLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls) { IRO_ASSERT(3546, pointsToFunc != NULL); IRO_ASSERT(3547, ls != NULL); @@ -2104,7 +2104,7 @@ inline PointsToEntry *PointsToFunction_FindByLookupCompatibleLocationSet(PointsT return NULL; } -inline PointsToEntry *PointsToFunction_FindContainingLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls, Type *rtype) { +CW_INLINE PointsToEntry *PointsToFunction_FindContainingLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls, Type *rtype) { IRO_ASSERT(3565, pointsToFunc != NULL); IRO_ASSERT(3566, ls != NULL); IRO_ASSERT(3567, rtype != NULL); @@ -2120,7 +2120,7 @@ inline PointsToEntry *PointsToFunction_FindContainingLocationSet(PointsToFunctio return NULL; } -inline void PointsToFunction_RemoveOverlappingLocations(PointsToFunction *pointsToFunc, PointsToEntry *pte) { +CW_INLINE void PointsToFunction_RemoveOverlappingLocations(PointsToFunction *pointsToFunc, PointsToEntry *pte) { Type *rtype1; Type *rtype2; LocationSet *ls; @@ -2179,7 +2179,7 @@ inline void PointsToFunction_RemoveOverlappingLocations(PointsToFunction *points } } -inline Boolean ShouldAddNewPointsToEntryToFunction(PointsToFunction *pointsToFunc, PointsToEntry *pte) { +CW_INLINE Boolean ShouldAddNewPointsToEntryToFunction(PointsToFunction *pointsToFunc, PointsToEntry *pte) { Boolean flag; Boolean isKnown; SInt32 stride; @@ -2247,7 +2247,7 @@ inline Boolean ShouldAddNewPointsToEntryToFunction(PointsToFunction *pointsToFun return !flag; } -inline Boolean PointsToFunction_SimpleAdd(PointsToFunction *pointsToFunc, PointsToEntry *pte) { +CW_INLINE Boolean PointsToFunction_SimpleAdd(PointsToFunction *pointsToFunc, PointsToEntry *pte) { PointsToEntry *newPTE; IRO_ASSERT(3741, pointsToFunc != NULL); @@ -2266,7 +2266,7 @@ inline Boolean PointsToFunction_SimpleAdd(PointsToFunction *pointsToFunc, Points return 1; } -inline Boolean PointsToFunction_Add(PointsToFunction *pointsToFunc, PointsToEntry *pte) { +CW_INLINE Boolean PointsToFunction_Add(PointsToFunction *pointsToFunc, PointsToEntry *pte) { IRO_ASSERT(3766, pointsToFunc != NULL); IRO_ASSERT(3767, pte != NULL); @@ -2284,7 +2284,7 @@ inline Boolean PointsToFunction_Add(PointsToFunction *pointsToFunc, PointsToEntr return 0; } -inline Boolean PointsToFunction_AddWithoutChecking(PointsToFunction *pointsToFunc, PointsToEntry *pte) { +CW_INLINE Boolean PointsToFunction_AddWithoutChecking(PointsToFunction *pointsToFunc, PointsToEntry *pte) { LocationSet *ls; IRO_ASSERT(3793, pointsToFunc != NULL); @@ -2301,7 +2301,7 @@ inline Boolean PointsToFunction_AddWithoutChecking(PointsToFunction *pointsToFun return 0; } -inline void PointsToFunction_RemoveByLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls) { +CW_INLINE void PointsToFunction_RemoveByLocationSet(PointsToFunction *pointsToFunc, LocationSet *ls) { PointsToFunction *prev; PointsToFunction *tmp; @@ -2341,28 +2341,28 @@ inline void PointsToFunction_RemoveByLocationSet(PointsToFunction *pointsToFunc, } } -inline void PointsToFunction_RemoveAll(PointsToFunction *pointsToFunc) { +CW_INLINE void PointsToFunction_RemoveAll(PointsToFunction *pointsToFunc) { IRO_ASSERT(3862, pointsToFunc != NULL); while (pointsToFunc && pointsToFunc->pte) PointsToFunction_RemoveByLocationSet(pointsToFunc, pointsToFunc->pte->loc); } -inline void PointsToFunction_AddFunctionAction(PointsToEntry *pte, void *refcon) { +CW_INLINE void PointsToFunction_AddFunctionAction(PointsToEntry *pte, void *refcon) { IRO_ASSERT(3872, pte != NULL); IRO_ASSERT(3873, refcon != NULL); PointsToFunction_Add((PointsToFunction *) refcon, pte); } -inline void PointsToFunction_SimpleAddFunctionAction(PointsToEntry *pte, void *refcon) { +CW_INLINE void PointsToFunction_SimpleAddFunctionAction(PointsToEntry *pte, void *refcon) { IRO_ASSERT(3880, pte != NULL); IRO_ASSERT(3881, refcon != NULL); PointsToFunction_SimpleAdd((PointsToFunction *) refcon, pte); } -inline void PointsToFunction_AddAllIGuess_sub_487D80(PointsToFunction *dest, PointsToFunction *src) { +CW_INLINE void PointsToFunction_AddAllIGuess_sub_487D80(PointsToFunction *dest, PointsToFunction *src) { IRO_ASSERT(3888, dest != NULL); IRO_ASSERT(3889, src != NULL); @@ -2372,7 +2372,7 @@ inline void PointsToFunction_AddAllIGuess_sub_487D80(PointsToFunction *dest, Poi PointsToFunction_ForEach(src, PointsToFunction_SimpleAddFunctionAction, dest); } -inline void PointsToFunction_SortByExtendedParamNum(PointsToFunction *pointsToFunc) { +CW_INLINE void PointsToFunction_SortByExtendedParamNum(PointsToFunction *pointsToFunc) { UInt32 value1; UInt32 value2; PointsToFunction *scan; @@ -2417,7 +2417,7 @@ inline void PointsToFunction_SortByExtendedParamNum(PointsToFunction *pointsToFu } } -inline Boolean PointsToFunctions_Equal(PointsToFunction *pointsToFunc1, PointsToFunction *pointsToFunc2) { +CW_INLINE Boolean PointsToFunctions_Equal(PointsToFunction *pointsToFunc1, PointsToFunction *pointsToFunc2) { PointsToFunction *scan; PointsToEntry *pte; @@ -2442,11 +2442,11 @@ inline Boolean PointsToFunctions_Equal(PointsToFunction *pointsToFunc1, PointsTo return 1; } -inline Boolean PointsToFunctions_Match(PointsToFunction *pointsToFunc1, PointsToFunction *pointsToFunc2) { +CW_INLINE Boolean PointsToFunctions_Match(PointsToFunction *pointsToFunc1, PointsToFunction *pointsToFunc2) { return 1; } -inline PartialTransferFunction *PartialTransferFunction_New(void) { +CW_INLINE PartialTransferFunction *PartialTransferFunction_New(void) { PartialTransferFunction *ptf = IRO_malloc(sizeof(PartialTransferFunction)); IRO_ASSERT(4110, ptf != NULL); @@ -2461,7 +2461,7 @@ inline PartialTransferFunction *PartialTransferFunction_New(void) { return ptf; } -inline void PartialTransferFunction_Delete(PartialTransferFunction *ptf) { +CW_INLINE void PartialTransferFunction_Delete(PartialTransferFunction *ptf) { IRO_ASSERT(4126, ptf != NULL); IRO_ASSERT(4127, ptf->initialPointsToFn == NULL); IRO_ASSERT(4128, ptf->finalPointsToFn == NULL); @@ -2473,7 +2473,7 @@ inline void PartialTransferFunction_Delete(PartialTransferFunction *ptf) { IRO_free(ptf); } -inline void PartialTransferFunction_Init(PartialTransferFunction *ptf, IROLinear *contextNd, PartialTransferFunction *contextPTF) { +CW_INLINE void PartialTransferFunction_Init(PartialTransferFunction *ptf, IROLinear *contextNd, PartialTransferFunction *contextPTF) { IRO_ASSERT(4142, ptf != NULL); IRO_ASSERT(4143, contextNd != NULL); IRO_ASSERT(4144, contextPTF != NULL); @@ -2494,7 +2494,7 @@ inline void PartialTransferFunction_Init(PartialTransferFunction *ptf, IROLinear ptf->context.ptf = contextPTF; } -inline void PartialTransferFunction_Copy(PartialTransferFunction *dest, PartialTransferFunction *src) { +CW_INLINE void PartialTransferFunction_Copy(PartialTransferFunction *dest, PartialTransferFunction *src) { IRO_ASSERT(4164, src != NULL); IRO_ASSERT(4165, dest != NULL); @@ -2517,7 +2517,7 @@ inline void PartialTransferFunction_Copy(PartialTransferFunction *dest, PartialT dest->context = src->context; } -inline void PartialTransferFunction_Term(PartialTransferFunction *ptf) { +CW_INLINE void PartialTransferFunction_Term(PartialTransferFunction *ptf) { IRO_ASSERT(4190, ptf != NULL); PointsToFunction_Term(ptf->initialPointsToFn); @@ -2544,25 +2544,25 @@ inline void PartialTransferFunction_Term(PartialTransferFunction *ptf) { #endif } -inline PointsToFunction *PartialTransferFunction_initialPointsToFn(PartialTransferFunction *ptf) { +CW_INLINE PointsToFunction *PartialTransferFunction_initialPointsToFn(PartialTransferFunction *ptf) { IRO_ASSERT(4221, ptf != NULL); return ptf->initialPointsToFn; } -inline PointsToFunction *PartialTransferFunction_finalPointsToFn(PartialTransferFunction *ptf) { +CW_INLINE PointsToFunction *PartialTransferFunction_finalPointsToFn(PartialTransferFunction *ptf) { IRO_ASSERT(4227, ptf != NULL); return ptf->finalPointsToFn; } -inline LocationSetSet *PTF_sub_48D750(PartialTransferFunction *ptf) { +CW_INLINE LocationSetSet *PTF_sub_48D750(PartialTransferFunction *ptf) { IRO_ASSERT(4233, ptf != NULL); return ptf->funcModifies; } -inline LocationSet *PartialTransferFunction_returnLocation(PartialTransferFunction *ptf) { +CW_INLINE LocationSet *PartialTransferFunction_returnLocation(PartialTransferFunction *ptf) { IRO_ASSERT(4249, ptf != NULL); if (!ptf->returnLocation) { @@ -2579,25 +2579,25 @@ inline LocationSet *PartialTransferFunction_returnLocation(PartialTransferFuncti return ptf->returnLocation; } -inline IROLinear *PTF_sub_48B980(PartialTransferFunction *ptf) { +CW_INLINE IROLinear *PTF_sub_48B980(PartialTransferFunction *ptf) { IRO_ASSERT(4265, ptf != NULL); return ptf->context.nd; } -inline PartialTransferFunction *PTF_sub_48B970(PartialTransferFunction *ptf) { +CW_INLINE PartialTransferFunction *PTF_sub_48B970(PartialTransferFunction *ptf) { IRO_ASSERT(4271, ptf != NULL); return ptf->context.ptf; } -inline void PartialTransferFunction_sub_48A610(PartialTransferFunction *ptf, Boolean value) { +CW_INLINE void PartialTransferFunction_sub_48A610(PartialTransferFunction *ptf, Boolean value) { IRO_ASSERT(4298, ptf != NULL); ptf->x10 = (value != 0) ? 1 : 0; } -inline PTFList *PTFList_New(void) { +CW_INLINE PTFList *PTFList_New(void) { PTFList *ptfList = IRO_malloc(sizeof(PTFList)); IRO_ASSERT(4393, ptfList != NULL); @@ -2608,7 +2608,7 @@ inline PTFList *PTFList_New(void) { return ptfList; } -inline void PTFList_Delete(PTFList *ptfList) { +CW_INLINE void PTFList_Delete(PTFList *ptfList) { IRO_ASSERT(4405, ptfList != NULL); IRO_ASSERT(4406, ptfList->ptf == NULL); IRO_ASSERT(4407, ptfList->otherPTFs == NULL); @@ -2616,14 +2616,14 @@ inline void PTFList_Delete(PTFList *ptfList) { IRO_free(ptfList); } -inline void PTFList_Init(PTFList *ptfList) { +CW_INLINE void PTFList_Init(PTFList *ptfList) { IRO_ASSERT(4417, ptfList != NULL); ptfList->ptf = NULL; ptfList->otherPTFs = NULL; } -inline void PTFList_Term(PTFList *ptfList) { +CW_INLINE void PTFList_Term(PTFList *ptfList) { IRO_ASSERT(4435, ptfList != NULL); PTFList_RemoveAll(ptfList); @@ -2634,7 +2634,7 @@ inline void PTFList_Term(PTFList *ptfList) { #endif } -inline void PTFList_ForEach(PTFList *ptfList, void (*action)(PartialTransferFunction *, void *), void *refcon) { +CW_INLINE void PTFList_ForEach(PTFList *ptfList, void (*action)(PartialTransferFunction *, void *), void *refcon) { IRO_ASSERT(4478, ptfList != NULL); IRO_ASSERT(4479, action != NULL); IRO_ASSERT(4480, refcon == NULL || refcon != NULL); @@ -2645,7 +2645,7 @@ inline void PTFList_ForEach(PTFList *ptfList, void (*action)(PartialTransferFunc } } -inline PartialTransferFunction *PTFList_sub_48A0F0(PTFList *ptfList, PartialTransferFunction *ptf) { +CW_INLINE PartialTransferFunction *PTFList_sub_48A0F0(PTFList *ptfList, PartialTransferFunction *ptf) { IRO_ASSERT(4490, ptfList != NULL); IRO_ASSERT(4491, ptf != NULL); @@ -2659,13 +2659,13 @@ inline PartialTransferFunction *PTFList_sub_48A0F0(PTFList *ptfList, PartialTran return NULL; } -inline PartialTransferFunction *PTFList_FindFirst(PTFList *ptfList) { +CW_INLINE PartialTransferFunction *PTFList_FindFirst(PTFList *ptfList) { IRO_ASSERT(4502, ptfList != NULL); return ptfList->ptf; } -inline void PTFList_sub_48A080(PTFList *ptfList, PartialTransferFunction *ptf) { +CW_INLINE void PTFList_sub_48A080(PTFList *ptfList, PartialTransferFunction *ptf) { IRO_ASSERT(4511, ptfList != NULL); IRO_ASSERT(4512, ptf != NULL); @@ -2680,7 +2680,7 @@ inline void PTFList_sub_48A080(PTFList *ptfList, PartialTransferFunction *ptf) { ptfList->ptf = ptf; } -inline void PTFList_sub_48A050(PTFList *ptfList, PartialTransferFunction *ptf) { +CW_INLINE void PTFList_sub_48A050(PTFList *ptfList, PartialTransferFunction *ptf) { IRO_ASSERT(4529, ptfList != NULL); IRO_ASSERT(4530, ptf != NULL); @@ -2688,7 +2688,7 @@ inline void PTFList_sub_48A050(PTFList *ptfList, PartialTransferFunction *ptf) { PTFList_sub_48A080(ptfList, ptf); } -inline void PTFList_Remove(PTFList *ptfList, PartialTransferFunction *ptf) { +CW_INLINE void PTFList_Remove(PTFList *ptfList, PartialTransferFunction *ptf) { PTFList *prev; PTFList *tmp; @@ -2725,7 +2725,7 @@ inline void PTFList_Remove(PTFList *ptfList, PartialTransferFunction *ptf) { } } -inline void PTFList_RemoveAll(PTFList *ptfList) { +CW_INLINE void PTFList_RemoveAll(PTFList *ptfList) { IRO_ASSERT(4582, ptfList != NULL); while (ptfList && ptfList->ptf) diff --git a/compiler_and_linker/unsorted/IroUtil.c b/compiler_and_linker/unsorted/IroUtil.c index 53e6733..3ed6350 100644 --- a/compiler_and_linker/unsorted/IroUtil.c +++ b/compiler_and_linker/unsorted/IroUtil.c @@ -796,7 +796,7 @@ IROLinear *IRO_TempReference(Object *obj, IROList *list) { return ind; } -inline IROLinear *LocateFatherHelper(IROLinear *linear, Boolean a, IROLinear ***b) { +CW_INLINE IROLinear *LocateFatherHelper(IROLinear *linear, Boolean a, IROLinear ***b) { IROLinear *scan; SInt32 index; int i; 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 // 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; diff --git a/sdk_hdrs/CWPlugins.h b/sdk_hdrs/CWPlugins.h index ecd690b..c959b9f 100755 --- a/sdk_hdrs/CWPlugins.h +++ b/sdk_hdrs/CWPlugins.h @@ -1 +1 @@ -/* * CWPlugins.h - Common declarations for Metrowerks CodeWarrior� plugins * * Copyright � 1995-1997 Metrowerks, Inc. All rights reserved. * */ #include "common.h" #ifndef __CWPlugins_H__ #define __CWPlugins_H__ #ifdef __MWERKS__ # pragma once #endif #define CWPLUGIN_HOST_MACOS 1 #define CWPLUGIN_HOST_WIN32 2 #define CWPLUGIN_HOST_SOLARIS 3 #define CWPLUGIN_HOST_LINUX 4 #ifndef CWPLUGIN_HOST # ifdef WIN32 # define CWPLUGIN_HOST CWPLUGIN_HOST_WIN32 # elif defined(macintosh) # define CWPLUGIN_HOST CWPLUGIN_HOST_MACOS # elif defined(__sun__) # define CWPLUGIN_HOST CWPLUGIN_HOST_SOLARIS # elif defined(__linux__) || defined(__CLION_IDE__) # define CWPLUGIN_HOST CWPLUGIN_HOST_LINUX # else # error # endif #endif #define CWPLUGIN_API_MACOS 1 #define CWPLUGIN_API_WIN32 2 #define CWPLUGIN_API_UNIX 3 #ifndef CWPLUGIN_API # ifdef WIN32 # define CWPLUGIN_API CWPLUGIN_API_WIN32 # elif defined(macintosh) # define CWPLUGIN_API CWPLUGIN_API_MACOS # elif defined(__sun__) || defined(__linux__) || defined(__CLION_IDE__) # define CWPLUGIN_API CWPLUGIN_API_UNIX # else # error # endif #endif /* ** Radix 256 notation where a 32-bit integer is created from four ** ASCII characters. A four-character constant of this form, say ** 'ABCD', must always be represented with the same pattern, 0x41424344 ** in this case, regardless of big/little endian issues. */ typedef SInt32 CWFourCharType; #define CWFOURCHAR(a, b, c, d) \ (((CWFourCharType) ((a) & 0xff) << 24) \ | ((CWFourCharType) ((b) & 0xff) << 16) \ | ((CWFourCharType) ((c) & 0xff) << 8) \ | ((CWFourCharType) ((d) & 0xff))) #if CWPLUGIN_API == CWPLUGIN_API_UNIX #include #endif #ifndef CW_USE_PRAGMA_EXPORT #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS #define CW_USE_PRAGMA_EXPORT 1 #else #define CW_USE_PRAGMA_EXPORT 0 #endif #endif #ifndef CW_USE_PRAGMA_IMPORT #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS #define CW_USE_PRAGMA_IMPORT 1 #else #define CW_USE_PRAGMA_IMPORT 0 #endif #endif #ifdef __MWERKS__ #pragma options align=mac68k #endif #ifdef _MSC_VER #pragma pack(push,2) #endif #ifdef __cplusplus extern "C" { #endif #if CW_USE_PRAGMA_IMPORT #pragma import on #endif /* These constants specify the action the IDE is asking the plugin to execute */ enum { reqInitialize = -2, /* called when the plugin is loaded */ reqTerminate = -1, /* called when the plugin is unloaded */ reqIdle = -100, /* called periodically to allow for plugin tasks EP 6/24/98 */ reqAbout = -101, /* called to ask plugin to display about dialog EP 6/24/98 */ reqPrefsChange = -102 /* called when an associated pref panel changes EP 6/24/98 */ }; /* Used in CWFileInfo.dependencyType to indicate what type of make */ /* dependency to establish between files */ typedef enum CWDependencyType { cwNoDependency, /* do not establish a dependency */ cwNormalDependency, /* recompile dependent whenever prereq changes */ cwInterfaceDependency /* recompile only if interface to file changes */ } CWDependencyType; /* Used in CWFileInfo.filedatatype to indicate the type of data in a loaded file */ enum { cwFileTypeUnknown, /* unknown binary data */ cwFileTypeText, /* normal text file */ cwFileTypePrecompiledHeader /* cached precompiled header */ }; /* constant for CWFileInfo.isdependentoffile */ #define kCurrentCompiledFile -1L /* constant for CWStorePluginData/CWGetPluginData */ #define kTargetGlobalPluginData -1L /* constant for CWNewProjectEntryInfo link order, segment, and overlay values */ #define kDefaultLinkPosition -1L /* Selectors for CWFindLogicalDirectory */ enum { kIDEDirectorySelector = 1, /* parent directory of IDE application; "bin" folder on Win32 */ kCodeWarriorDirectorySelector, /* root CodeWarrior directory */ kSystemDirectorySelector, /* system directory */ kProjectDirectorySelector, /* parent directory of current project */ kProjectDataDirectorySelector, /* project data directory */ kTargetDataDirectorySelector, /* target data directory (within project data directory) */ kTargetObjectCodeDirectorySelector, /* object code directory (within target data directory) */ kDebuggerCacheDirectorySelector, /* "CW Debugging Cache" directory */ kHelperAppsDirectorySelector, /* "(Helper Apps)" directory */ kPluginsDirectorySelector, /* "CodeWarrior Plugins" (Mac) or "plugins" (Win32) directory */ kPluginParentDirectorySelector, /* parent directory of current plugin */ kStationeryDirectorySelector, /* "(Project Stationery)" directory */ kRADStationeryDirectorySelector, /* "RAD Stationery" directory */ kLocalizedResourcesDirectorySelector /* "resources" directory */ }; /* CWPluginContext is a magic cookie passed to all plugins. It must */ /* be passed back to all IDE callbacks */ typedef struct CWPluginPrivateContext* CWPluginContext; /* CWResult is the error/status result returned by all IDE API routine. */ /* The most common errors are returned directly. For OS-specific errors, the */ /* CWResult is cwErrOSError, and the OS-specific error can be obtained by */ /* calling CWGetOSError() */ typedef SInt32 CWResult; /* CWMemHandle is an abstraction for memory used in some parts */ /* of the plugin API. API routines must be used to allocate */ /* and free CWMemHandles, or to convert them to pointers. */ typedef struct CWMemHandlePrivateStruct* CWMemHandle; /* Used to identify custom data associated by a plugin with */ /* a project file or a target as a whole. Must be a four character */ /* constant. All lower case constants are reserved by the IDE */ typedef UInt32 CWDataType; /* Some information used in the compiler/linker API is platform-dependent */ /* We use some typedefs to isolate the differences */ /* CWFileSpec contains the native platform file specifier. */ /* CWFileName contains the string type for a native file name */ /* CWFileTime contains the native platform file timestamp */ /* CWOSResult contains the native platform error return value */ /* CWResult contains an API routine error/status result */ /* CW_CALLBACK is a macro defining the calling convention and return type for */ /* IDE callback routines. */ /* CW_PLUGINENTRY is a macro defining the calling convention and return type for */ /* plugin entry points. */ /* CWSUCCESS is a macro that evaluates to true when given a CWResult indicating an */ /* routine succeeded */ #if CWPLUGIN_API == CWPLUGIN_API_MACOS typedef FSSpec CWFileSpec; typedef char CWFileName[32]; typedef unsigned long CWFileTime; typedef OSErr CWOSResult; #elif CWPLUGIN_API == CWPLUGIN_API_WIN32 typedef unsigned char Boolean; typedef struct CWFileSpec { char path[MAX_PATH]; } CWFileSpec; typedef char CWFileName[65]; typedef FILETIME CWFileTime; typedef DWORD CWOSResult; #elif CWPLUGIN_API == CWPLUGIN_API_UNIX #define MAX_PATH MAXPATHLEN #ifndef __MACTYPES__ typedef unsigned char Boolean; #endif #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif typedef struct CWFileSpec { char path[MAX_PATH]; } CWFileSpec; typedef char CWFileName[65]; typedef time_t CWFileTime; typedef int CWOSResult; #else #error Unknown plugin API! #endif #define CWSUCCESS(result) ((result) == 0) #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS #define CW_CALLBACK pascal CWResult #define CW_CALLBACK_PTR(function_name) pascal CWResult (function_name) #define CWPLUGIN_ENTRY(function_name) pascal short (function_name) #elif CWPLUGIN_HOST == CWPLUGIN_HOST_WIN32 #define CW_CALLBACK CWResult __stdcall #define CW_CALLBACK_PTR(function_name) CWResult (__stdcall function_name) #define CWPLUGIN_ENTRY(function_name) short (__stdcall function_name) #elif CWPLUGIN_HOST==CWPLUGIN_HOST_SOLARIS || CWPLUGIN_HOST==CWPLUGIN_HOST_LINUX #define CW_CALLBACK CWResult #define CW_CALLBACK_PTR(function_name) CWResult (function_name) #define CWPLUGIN_ENTRY(function_name) short (function_name) #else #error Unknown plugin host! #endif /* information returned by CWFindAndLoadFile */ typedef struct CWFileInfo { Boolean fullsearch; /* [<-] do we do a full search of paths for file */ char dependencyType; /* [<-] type CWDependencyType */ SInt32 isdependentoffile; /* [<-] this file is a dependent of file id */ /* (zero based) or -1L if of current file */ Boolean suppressload; /* [<-] find but don't load the file */ Boolean padding; /* [**] structure padding */ const char* filedata; /* [->] point to the file text/data, or NULL */ SInt32 filedatalength; /* [->] length of filedata */ short filedatatype; /* [->] type of data pointed to by filedata */ /* the remaining members are valid only when called by compilers */ short fileID; /* [->] use in browse records and dependencies */ CWFileSpec filespec; /* [->] specifies the file on disk */ Boolean alreadyincluded; /* [->] TRUE if already included in current compile */ Boolean recordbrowseinfo; /* [->] record browse info for this file? */ } CWFileInfo; /* information maintained by the IDE for each segment in the project */ typedef struct CWProjectSegmentInfo { char name[32]; /* segment name */ short attributes; /* segment attributes */ } CWProjectSegmentInfo; /* 64 bit address */ typedef struct CWAddr64 { SInt32 lo; /* low order longword of address */ SInt32 hi; /* high order longword of address */ } CWAddr64; /* describes an overlay group, Use CWGetOverlayGroup1Info to iterate over overlay groups */ typedef struct CWOverlay1GroupInfo { char name[256]; /* overlay group name */ CWAddr64 address; /* load address */ SInt32 numoverlays; /* number of overlays in this group */ } CWOverlay1GroupInfo; /* describes an overlay, use CWGetOverlay1Info to iterate over overlays */ typedef struct CWOverlay1Info { char name[256]; /* name of this overlay */ SInt32 numfiles; /* number of files in the overlay */ } CWOverlay1Info; /* describes a file in an overlay, use CWGetOverlayFile1Info to iterate over files. Use */ /* whichfile in calls taking a file number, e.g. CWLoadObjectData or CWGetFileInfo */ typedef struct CWOverlay1FileInfo { SInt32 whichfile; /* flat file number */ } CWOverlay1FileInfo; /* * All compiler errors or warnings which occur at some specific location in some * source file are identified by a CWMessageRef structure. This structure * provides sufficient information for the development environment to locate * and display the exact position associated with a message. For each message, * the compiler provides: * * errorstring: contains a description of the error, e.g. "syntax error" * errorline: contains a subset of the text containing the error * errorlevel: indicates if the "error" is an error, warning, or informational message * CWMessageRef: further info so the IDE can perform two tasks: * - Display a summary of each message, with the "error token" * underlined within the compiler-provided errorline. This * information is provided by the tokenoffset and tokenlength * fields. If tokenLength is zero then no underlining is performed. * * - Open the file containing the error and select the full * text of the error. This information is provided by the * selectionoffset and selectionlength fields. */ typedef struct CWMessageRef { CWFileSpec sourcefile; /* file containing error */ SInt32 linenumber; /* error linenumber in file */ short tokenoffset; /* offset into errorline of token underline */ short tokenlength; /* length of error token to be underlined */ SInt32 selectionoffset; /* start of error for text selection */ SInt32 selectionlength; /* length of error for text selection */ } CWMessageRef; /* message types, used for errorlevel parameter to message routines */ enum { messagetypeInfo, /* informational only */ messagetypeWarning, /* warning message */ messagetypeError /* error message */ }; /* information maintained by the IDE for each file in the project */ typedef struct CWProjectFileInfo { CWFileSpec filespec; /* CW_FileSpec of file in project */ CWFileTime moddate; /* date source file was last modified */ short segment; /* segment number of file */ Boolean hasobjectcode; /* file has object code to be linked */ Boolean hasresources; /* file has resources to be linked */ Boolean isresourcefile; /* file -is- a resource file to be linked */ Boolean weakimport; /* file has "Import Weak" flag set */ Boolean initbefore; /* file has "Init Before" flag set */ Boolean gendebug; /* file has generate debug info on */ CWFileTime objmoddate; /* date object code was last modified */ CWFileName dropinname; /* name of dropin used to process this file */ short fileID; /* fileID to use in browse records */ Boolean recordbrowseinfo; /* record browse info for this file? */ Boolean reserved; /* reserved and used internally */ #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS /* some Macintosh-specific information */ OSType filetype; /* MacOS file type */ OSType filecreator; /* MacOS file creator */ #endif Boolean hasunitdata; /* file has associated unit data (Pascal) */ Boolean mergeintooutput; /* file has "Merge Into Output" flag set */ UInt32 unitdatadependencytag; /* dependency tag (i.e. checksum) of unit data (Pascal) */ } CWProjectFileInfo; typedef struct CWNewTextDocumentInfo { const char* documentname; /* name for new document, can be NULL */ CWMemHandle text; /* initial text for document */ Boolean markDirty; /* mark doc as needing to be saved? */ } CWNewTextDocumentInfo; typedef struct CWNewProjectEntryInfo { /* use kDefaultLinkPosition to get default link order, overlay, or segment */ SInt32 position; /* optional link order position */ SInt32 segment; /* optional segment number */ SInt32 overlayGroup; /* optional overlay group number */ SInt32 overlay; /* optional overlay number */ const char* groupPath; /* optional fully qualified path to file group */ Boolean mergeintooutput; /* set merge into output flag? */ Boolean weakimport; /* set weak import flag? */ Boolean initbefore; /* set initbefore flag? */ } CWNewProjectEntryInfo; typedef struct CWIDEInfo { unsigned short majorVersion; unsigned short minorVersion; unsigned short bugFixVersion; unsigned short buildVersion; unsigned short dropinAPIVersion; } CWIDEInfo; /* Structures for getting the list of access paths. */ /* The callback does the filtering on the host flags, so the list returned */ /* will only contain the paths that are enabled for the host platform. */ /* There are separate APIs to get the Mac OS X framework style access paths. */ typedef enum CWAccessPathType { cwSystemPath, cwUserPath } CWAccessPathType; typedef struct CWAccessPathInfo { CWFileSpec pathSpec; Boolean recursive; SInt32 subdirectoryCount; } CWAccessPathInfo; typedef struct CWAccessPathListInfo { SInt32 systemPathCount; SInt32 userPathCount; Boolean alwaysSearchUserPaths; Boolean convertPaths; } CWAccessPathListInfo; /* Structures for getting the list of Mac OS X framework access paths. */ /* The callback does the filtering on the host flags, so the list returned */ /* will only contain the Mac OS X framework style paths that are enabled for */ /* the host platform. */ /* There are separate APIs to get the traditional style access paths. */ typedef struct CWFrameworkAccessPathInfo { CWFileSpec pathSpec; Boolean framework; } CWFrameworkAccessPathInfo; typedef struct CWFrameworkAccessPathListInfo { SInt32 systemPathCount; SInt32 userPathCount; Boolean alwaysSearchUserPaths; Boolean convertPaths; Boolean requireFrameworkIncludes; } CWFrameworkAccessPathListInfo; /* constants for different types of plugins */ /* Used in the dropintype in the DropInFlags, as well as for the MacOS file type */ enum { CWDROPINLINKERTYPE = CWFOURCHAR('L','i','n','k'), /* type for DropIn linkers */ CWDROPINCOMPILERTYPE= CWFOURCHAR('C','o','m','p'), /* type for DropIn compilers */ CWDROPINPREFSTYPE = CWFOURCHAR('P','a','n','L'), /* type for DropIn panels */ CWDROPINPREFSTYPE_1 = CWFOURCHAR('P','a','n','l'), /* type for 1.x IDE DropIn panels */ CWDROPINVCSTYPE = CWFOURCHAR('V','C','S',' '), /* type for DropIn version control */ CWDROPINCOMTYPE = CWFOURCHAR('C','O','M',' ') /* type for COM-only plugins */ }; typedef SInt32 CWPluginType; // one of the above types /* Format of 'Flag' resources, or data returned by dropin's GetDropinFlags entry */ /* point. */ /* */ /* For the version 2 of these resource, we renamed the 'apiversion' field to */ /* 'earliestCompatibleAPIVersion' and added the 'newestAPIVersion' field. */ /* This allows plugins to support more than one API version and therefore run */ /* under more than one version of the IDE. The CWGetAPIVersion call should be used */ /* to determine what API version the IDE is using to talk to a plugin. */ #define kCurrentDropInFlagsVersion 2 typedef struct DropInFlags { short rsrcversion; /* version number of resource */ CWDataType dropintype; /* dropin type (compiler, panel, etc) */ /* earliest API support by this plugin */ unsigned short earliestCompatibleAPIVersion; UInt32 dropinflags; /* capability flags */ CWDataType edit_language; /* language */ unsigned short newestAPIVersion; /* newest API version supported */ } DropInFlags, **DropInFlagsHandle; #define kCurrentCWPanelListVersion 1 typedef struct CWPanelList { short version; short count; const char** names; } CWPanelList; #define kCurrentCWFamilyListVersion 1 #define kCurrentCWFamilyResourceVersion 1 typedef struct CWFamily { CWDataType type; const char* name; } CWFamily; typedef struct CWFamilyList { short version; short count; CWFamily* families; } CWFamilyList; typedef struct CWFamilyResource { short version; CWDataType type; unsigned char name[64]; } CWFamilyResource; #define kCurrentCWHelpInfoVersion 1 typedef struct CWHelpInfo { short version; const char* helpFileName; } CWHelpInfo; #define kCurrentCWRelativePathVersion 1 typedef enum CWRelativePathFormat { format_Generic = 0, // Simple name, not platform-specific format_Mac, // Uses : as separator :: for parent directory format_Win, // Uses \ as separator .. for parent directory format_Unix // Uses / as separator .. for parent directory } CWRelativePathFormat; typedef enum CWRelativePathTypes { type_Absolute = 0, type_Project, type_Compiler, type_System, type_UserDefined } CWRelativePathTypes; typedef struct CWRelativePath { short version; // version number unsigned char pathType; // use CWRelativePathTypes unsigned char pathFormat; // use CWRelativePathFormat char userDefinedTree[256]; // user-defined tree name char pathString[512]; // actual path string } CWRelativePath; /* * */ #define kCurrentCWPluginInfoVersion 1 typedef struct CWPluginInfo { short version; // struct version number const char* companyName; // i.e. Metrowerks const char* pluginName; // Defaults to Dropin->GetName() const char* pluginDisplayName; const char* familyName; // i.e. Java unsigned short majorIDEVersion; // Version of IDE Required unsigned short minorIDEVersion; } CWPluginInfo; /* Declaration of plugin entry points that must be implemented by non-MacOS plugins */ /* It can also be implemented for MacOS plugins instead of having a 'Flag' resource */ CWPLUGIN_ENTRY (CWPlugin_GetDropInFlags)(const DropInFlags**, SInt32* flagsSize); /* Declaration of plugin entry points that may optionally be implemented by plugins */ /* These entry points override the corresponding resources on MacOS */ CWPLUGIN_ENTRY (CWPlugin_GetDropInName)(const char** dropInName); CWPLUGIN_ENTRY (CWPlugin_GetDisplayName)(const char** displayName); CWPLUGIN_ENTRY (CWPlugin_GetPanelList)(const CWPanelList** panelList); CWPLUGIN_ENTRY (CWPlugin_GetFamilyList)(const CWFamilyList** familyList); CWPLUGIN_ENTRY (CWPlugin_GetHelpInfo)(const CWHelpInfo** helpInfo); /* Declaration of info plugin entry point that must be implemented by all COM plugins */ CWPLUGIN_ENTRY (CWPlugin_GetPluginInfo)(const CWPluginInfo** pluginInfo); /* Callback declarations: these callbacks are supported for all CodeWarrior plugins */ /* Get the action the IDE is requesting of the plugin */ CW_CALLBACK CWGetPluginRequest(CWPluginContext context, SInt32* request); /* Call when finished handling a request, just before returning to the shell */ CW_CALLBACK CWDonePluginRequest(CWPluginContext, CWResult resultCode); /* Get the version number of API used by the IDE to talk to the plugin */ CW_CALLBACK CWGetAPIVersion(CWPluginContext context, SInt32* version); /* Get information about the IDE being used */ CW_CALLBACK CWGetIDEInfo(CWPluginContext context, CWIDEInfo* info); /* Get the OS error associated with the last callback */ CW_CALLBACK CWGetCallbackOSError(CWPluginContext context, CWOSResult* error); /* Set the OS error associated with a failed plugin request */ CW_CALLBACK CWSetPluginOSError(CWPluginContext context, CWOSResult); /* Get the file specifier for the current project */ CW_CALLBACK CWGetProjectFile(CWPluginContext context, CWFileSpec* projectSpec); /* Get the directory where the IDE stores target-specific generated data */ CW_CALLBACK CWGetTargetDataDirectory(CWPluginContext context, CWFileSpec* targetDataDirectorySpec); /* Get the name of the current target in the current project */ CW_CALLBACK CWGetTargetName(CWPluginContext context, char* name, short maxLength); /* Get the directory where output files should be stored */ CW_CALLBACK CWGetOutputFileDirectory(CWPluginContext context, CWFileSpec* outputFileDirectory); /* Get the number of files in the current project */ CW_CALLBACK CWGetProjectFileCount(CWPluginContext context, SInt32* count); /* Get information about a particular file in the project */ CW_CALLBACK CWGetFileInfo(CWPluginContext context, SInt32 whichfile, Boolean checkFileLocation, CWProjectFileInfo* fileinfo); /* Search for a file by name on the current file's access paths. */ CW_CALLBACK CWFindAndLoadFile(CWPluginContext context, const char* filename, CWFileInfo *fileinfo); /* Get the access paths for the current target */ CW_CALLBACK CWGetAccessPathListInfo(CWPluginContext context, CWAccessPathListInfo* pathListInfo); CW_CALLBACK CWGetAccessPathInfo(CWPluginContext context, CWAccessPathType pathType, SInt32 whichPath, CWAccessPathInfo* pathInfo); CW_CALLBACK CWGetAccessPathSubdirectory(CWPluginContext context, CWAccessPathType pathType, SInt32 whichPath, SInt32 whichSubdirectory, CWFileSpec* subdirectory); CW_CALLBACK CWGetFrameworkAccessPathListInfo(CWPluginContext context, CWFrameworkAccessPathListInfo* pathListInfo); CW_CALLBACK CWGetFrameworkAccessPathInfo(CWPluginContext context, CWAccessPathType pathType, SInt32 whichPath, CWFrameworkAccessPathInfo* pathInfo); /* Get file text, from the editor, include file cache, or by reading the file */ CW_CALLBACK CWGetFileText(CWPluginContext context, const CWFileSpec* filespec, const char** text, SInt32* textLength, short* filedatatype); /* Release file text returned by CWFindAndLoadFile and CWGetFileText */ CW_CALLBACK CWReleaseFileText(CWPluginContext context, const char* text); /* Get information about a project segment */ CW_CALLBACK CWGetSegmentInfo(CWPluginContext context, SInt32 whichsegment, CWProjectSegmentInfo* segmentinfo); /* Get the number of overlay groups in the target */ CW_CALLBACK CWGetOverlay1GroupsCount(CWPluginContext context, SInt32* count); /* Get information about a project overlay group */ CW_CALLBACK CWGetOverlay1GroupInfo(CWPluginContext context, SInt32 whichgroup, CWOverlay1GroupInfo* groupinfo); /* Get information about an overlay within a group */ CW_CALLBACK CWGetOverlay1Info(CWPluginContext context, SInt32 whichgroup, SInt32 whichoverlay, CWOverlay1Info* overlayinfo); /* Get information about a file in an overlay */ CW_CALLBACK CWGetOverlay1FileInfo(CWPluginContext context, SInt32 whichgroup, SInt32 whichoverlay, SInt32 whichoverlayfile, CWOverlay1FileInfo* fileinfo); /* Report a error, warning, or informational message */ CW_CALLBACK CWReportMessage(CWPluginContext context, const CWMessageRef* msgRef, const char *line1, const char *line2, short errorlevel, SInt32 errorNumber); /* Display an alert. May actually be put in a message, depending on the plugin request */ CW_CALLBACK CWAlert(CWPluginContext context, const char* msg1, const char* msg2, const char* msg3, const char* msg4); /* Display one or two status messages to the user */ CW_CALLBACK CWShowStatus(CWPluginContext context, const char *line1, const char *line2); /* Give to the IDE to handle events and check if user has canceled this operation */ CW_CALLBACK CWUserBreak(CWPluginContext context); /* Return stored preference data, referenced by name. Typically used for preference */ /* panel settings. */ CW_CALLBACK CWGetNamedPreferences(CWPluginContext context, const char* prefsname, CWMemHandle* prefsdata); /* Store data referenced by a data type and file number */ CW_CALLBACK CWStorePluginData(CWPluginContext context, SInt32 whichfile, CWDataType type, CWMemHandle prefsdata); /* Return stored data referenced by a data type and file number */ CW_CALLBACK CWGetPluginData(CWPluginContext context, SInt32 whichfile, CWDataType type, CWMemHandle* prefsdata); /* Inform the IDE that a file modification date has changed. isGenerated is for use */ /* by compiler and linker plugins only */ CW_CALLBACK CWSetModDate(CWPluginContext context, const CWFileSpec* filespec, CWFileTime* moddate, Boolean isGenerated); /* Ask the IDE to add a file to the current target in the current project. isGenerated */ /* is for use by compiler plugins only. */ CW_CALLBACK CWAddProjectEntry(CWPluginContext context, const CWFileSpec* fileSpec, Boolean isGenerated, const CWNewProjectEntryInfo* projectEntryInfo, SInt32* whichfile); /* Ask the IDE to remove a file from the current target (link-order/segment/overlay) in the current project. */ /* If it's the last target that contains the file, it would be removed from the file list. */ CW_CALLBACK CWRemoveProjectEntry(CWPluginContext context, const CWFileSpec* fileSpec); /* Create a new editor window, supplying initial text and an optional document name */ CW_CALLBACK CWCreateNewTextDocument(CWPluginContext, const CWNewTextDocumentInfo* docinfo); /* Allocate memory. Permanent memory is not freed until the plugin is unloaded. */ /* Temporary memory is freed after each plugin request completes. */ CW_CALLBACK CWAllocateMemory(CWPluginContext context, SInt32 size, Boolean isPermanent, void** ptr); /* Free memory allocated via CWAllocateMemory */ CW_CALLBACK CWFreeMemory(CWPluginContext context, void* ptr, Boolean isPermanent); /* Allocate a memory handle of the requested size. All handles are automatically */ /* freed at the end of each compiler/linker request. useTempMemory is MacOS-specific*/ CW_CALLBACK CWAllocMemHandle(CWPluginContext context, SInt32 size, Boolean useTempMemory, CWMemHandle* handle); /* Free a memory handle */ CW_CALLBACK CWFreeMemHandle(CWPluginContext context, CWMemHandle handle); /* Return the current size of a memory handle */ CW_CALLBACK CWGetMemHandleSize(CWPluginContext context, CWMemHandle handle, SInt32* size); /* Resize an existing memory handle */ CW_CALLBACK CWResizeMemHandle(CWPluginContext context, CWMemHandle handle, SInt32 newSize); /* To obtain a pointer to the block, you must lock the handle */ /* moveHi is MacOS-specific */ CW_CALLBACK CWLockMemHandle(CWPluginContext context, CWMemHandle handle, Boolean moveHi, void** ptr); /* Unlock a memory handle, the pointer returned by locking the handle may no */ /* longer be valid */ CW_CALLBACK CWUnlockMemHandle(CWPluginContext context, CWMemHandle handle); #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS /* Utility function to map MacOS error codes to a CWResult code. Plugins */ /* may internally generate OSErrs, but need to return CWResult to the */ /* CodeWarrior IDE */ CW_CALLBACK CWMacOSErrToCWResult(CWPluginContext context, OSErr err); #endif /* Turn off the built in PP window manager while the plugin displays a dialog */ CW_CALLBACK CWPreDialog(CWPluginContext context); /* Turn on the built in PP window manager after the plugin is through with its */ /* dialog */ CW_CALLBACK CWPostDialog(CWPluginContext context); /* Notify the IDE that the plugin will be performing actions on a file */ CW_CALLBACK CWPreFileAction(CWPluginContext context, const CWFileSpec *theFile); /* Notify the IDE that the plugin is finished performing actions on a file */ CW_CALLBACK CWPostFileAction(CWPluginContext context, const CWFileSpec *theFile); CW_CALLBACK CWResolveRelativePath(CWPluginContext context, const CWRelativePath* relativePath, CWFileSpec* fileSpec, Boolean create); CW_CALLBACK CWFindLogicalDirectory(CWPluginContext context, SInt32 selector, CWFileSpec *dirSpec); CW_CALLBACK CWOpenFileInEditor(CWPluginContext context, const CWFileSpec *fileSpec); #if CWPLUGIN_HOST==CWPLUGIN_HOST_SOLARIS || CWPLUGIN_HOST==CWPLUGIN_HOST_LINUX /* Forward declarations */ struct ICodeWarriorApp; struct ICodeWarriorProject; struct ICodeWarriorDesign; struct ICodeWarriorTarget; #endif /* CWPLUGIN_HOST==CWPLUGIN_HOST_SOLARIS || CWPLUGIN_HOST==CWPLUGIN_HOST_LINUX */ /* Get the IDE application COM interface. Fails if called from any thread */ /* other than the main IDE thread, e.g. a build thread. */ CW_CALLBACK CWGetCOMApplicationInterface(CWPluginContext context, struct ICodeWarriorApp **app); /* Get the current project COM interface. Adds a reference upon return. */ /* Only succeeds if the plugin is being called in the context of a */ /* particular project. Fails if called from any thread */ /* other than the main IDE thread, e.g. a build thread. */ CW_CALLBACK CWGetCOMProjectInterface(CWPluginContext context, struct ICodeWarriorProject **project); /* Get the current design COM interface. Adds a reference upon return. */ /* Only succeeds if the plugin is being called in the context of a */ /* particular target that is associated with a design. */ /* Fails if called from any thread other than the main IDE thread, */ /* e.g. a build thread. */ CW_CALLBACK CWGetCOMDesignInterface(CWPluginContext context, struct ICodeWarriorDesign **design); /* Get the current target COM interface. Adds a reference upon return. */ /* Only succeeds if the plugin is being called in the context of a */ /* particular target. Fails if called from any thread */ /* other than the main IDE thread, e.g. a build thread. */ CW_CALLBACK CWGetCOMTargetInterface(CWPluginContext context, struct ICodeWarriorTarget **target); #if CW_USE_PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #ifdef _MSC_VER #pragma pack(pop) #endif #ifdef __MWERKS__ #pragma options align=reset #endif #endif /* __CWPlugins_H__ */ \ No newline at end of file +/* * CWPlugins.h - Common declarations for Metrowerks CodeWarrior� plugins * * Copyright � 1995-1997 Metrowerks, Inc. All rights reserved. * */ #include "common.h" #ifndef __CWPlugins_H__ #define __CWPlugins_H__ #ifdef __MWERKS__ # pragma once #endif #define CWPLUGIN_HOST_MACOS 1 #define CWPLUGIN_HOST_WIN32 2 #define CWPLUGIN_HOST_SOLARIS 3 #define CWPLUGIN_HOST_LINUX 4 #ifndef CWPLUGIN_HOST # ifdef WIN32 # define CWPLUGIN_HOST CWPLUGIN_HOST_WIN32 # elif defined(macintosh) || defined(__MACH__) # define CWPLUGIN_HOST CWPLUGIN_HOST_MACOS # elif defined(__sun__) # define CWPLUGIN_HOST CWPLUGIN_HOST_SOLARIS # elif defined(__linux__) # define CWPLUGIN_HOST CWPLUGIN_HOST_LINUX # else # error # endif #endif #define CWPLUGIN_API_MACOS 1 #define CWPLUGIN_API_WIN32 2 #define CWPLUGIN_API_UNIX 3 #ifndef CWPLUGIN_API # ifdef WIN32 # define CWPLUGIN_API CWPLUGIN_API_WIN32 # elif defined(macintosh) || defined(__MACH__) # define CWPLUGIN_API CWPLUGIN_API_MACOS # elif defined(__sun__) || defined(__linux__) # define CWPLUGIN_API CWPLUGIN_API_UNIX # else # error # endif #endif /* ** Radix 256 notation where a 32-bit integer is created from four ** ASCII characters. A four-character constant of this form, say ** 'ABCD', must always be represented with the same pattern, 0x41424344 ** in this case, regardless of big/little endian issues. */ typedef SInt32 CWFourCharType; #define CWFOURCHAR(a, b, c, d) \ (((CWFourCharType) ((a) & 0xff) << 24) \ | ((CWFourCharType) ((b) & 0xff) << 16) \ | ((CWFourCharType) ((c) & 0xff) << 8) \ | ((CWFourCharType) ((d) & 0xff))) #if CWPLUGIN_API == CWPLUGIN_API_UNIX #include #endif #ifndef CW_USE_PRAGMA_EXPORT #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS #define CW_USE_PRAGMA_EXPORT 1 #else #define CW_USE_PRAGMA_EXPORT 0 #endif #endif #ifndef CW_USE_PRAGMA_IMPORT #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS #define CW_USE_PRAGMA_IMPORT 1 #else #define CW_USE_PRAGMA_IMPORT 0 #endif #endif #ifdef __MWERKS__ #pragma options align=mac68k #endif #ifdef _MSC_VER #pragma pack(push,2) #endif #ifdef __cplusplus extern "C" { #endif #if CW_USE_PRAGMA_IMPORT #pragma import on #endif /* These constants specify the action the IDE is asking the plugin to execute */ enum { reqInitialize = -2, /* called when the plugin is loaded */ reqTerminate = -1, /* called when the plugin is unloaded */ reqIdle = -100, /* called periodically to allow for plugin tasks EP 6/24/98 */ reqAbout = -101, /* called to ask plugin to display about dialog EP 6/24/98 */ reqPrefsChange = -102 /* called when an associated pref panel changes EP 6/24/98 */ }; /* Used in CWFileInfo.dependencyType to indicate what type of make */ /* dependency to establish between files */ typedef enum CWDependencyType { cwNoDependency, /* do not establish a dependency */ cwNormalDependency, /* recompile dependent whenever prereq changes */ cwInterfaceDependency /* recompile only if interface to file changes */ } CWDependencyType; /* Used in CWFileInfo.filedatatype to indicate the type of data in a loaded file */ enum { cwFileTypeUnknown, /* unknown binary data */ cwFileTypeText, /* normal text file */ cwFileTypePrecompiledHeader /* cached precompiled header */ }; /* constant for CWFileInfo.isdependentoffile */ #define kCurrentCompiledFile -1L /* constant for CWStorePluginData/CWGetPluginData */ #define kTargetGlobalPluginData -1L /* constant for CWNewProjectEntryInfo link order, segment, and overlay values */ #define kDefaultLinkPosition -1L /* Selectors for CWFindLogicalDirectory */ enum { kIDEDirectorySelector = 1, /* parent directory of IDE application; "bin" folder on Win32 */ kCodeWarriorDirectorySelector, /* root CodeWarrior directory */ kSystemDirectorySelector, /* system directory */ kProjectDirectorySelector, /* parent directory of current project */ kProjectDataDirectorySelector, /* project data directory */ kTargetDataDirectorySelector, /* target data directory (within project data directory) */ kTargetObjectCodeDirectorySelector, /* object code directory (within target data directory) */ kDebuggerCacheDirectorySelector, /* "CW Debugging Cache" directory */ kHelperAppsDirectorySelector, /* "(Helper Apps)" directory */ kPluginsDirectorySelector, /* "CodeWarrior Plugins" (Mac) or "plugins" (Win32) directory */ kPluginParentDirectorySelector, /* parent directory of current plugin */ kStationeryDirectorySelector, /* "(Project Stationery)" directory */ kRADStationeryDirectorySelector, /* "RAD Stationery" directory */ kLocalizedResourcesDirectorySelector /* "resources" directory */ }; /* CWPluginContext is a magic cookie passed to all plugins. It must */ /* be passed back to all IDE callbacks */ typedef struct CWPluginPrivateContext* CWPluginContext; /* CWResult is the error/status result returned by all IDE API routine. */ /* The most common errors are returned directly. For OS-specific errors, the */ /* CWResult is cwErrOSError, and the OS-specific error can be obtained by */ /* calling CWGetOSError() */ typedef SInt32 CWResult; /* CWMemHandle is an abstraction for memory used in some parts */ /* of the plugin API. API routines must be used to allocate */ /* and free CWMemHandles, or to convert them to pointers. */ typedef struct CWMemHandlePrivateStruct* CWMemHandle; /* Used to identify custom data associated by a plugin with */ /* a project file or a target as a whole. Must be a four character */ /* constant. All lower case constants are reserved by the IDE */ typedef UInt32 CWDataType; /* Some information used in the compiler/linker API is platform-dependent */ /* We use some typedefs to isolate the differences */ /* CWFileSpec contains the native platform file specifier. */ /* CWFileName contains the string type for a native file name */ /* CWFileTime contains the native platform file timestamp */ /* CWOSResult contains the native platform error return value */ /* CWResult contains an API routine error/status result */ /* CW_CALLBACK is a macro defining the calling convention and return type for */ /* IDE callback routines. */ /* CW_PLUGINENTRY is a macro defining the calling convention and return type for */ /* plugin entry points. */ /* CWSUCCESS is a macro that evaluates to true when given a CWResult indicating an */ /* routine succeeded */ #if CWPLUGIN_API == CWPLUGIN_API_MACOS typedef FSSpec CWFileSpec; typedef char CWFileName[32]; typedef UInt32 CWFileTime; typedef OSErr CWOSResult; #elif CWPLUGIN_API == CWPLUGIN_API_WIN32 typedef unsigned char Boolean; typedef struct CWFileSpec { char path[MAX_PATH]; } CWFileSpec; typedef char CWFileName[65]; typedef FILETIME CWFileTime; typedef DWORD CWOSResult; #elif CWPLUGIN_API == CWPLUGIN_API_UNIX #define MAX_PATH MAXPATHLEN #ifndef __MACTYPES__ typedef unsigned char Boolean; #endif #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif typedef struct CWFileSpec { char path[MAX_PATH]; } CWFileSpec; typedef char CWFileName[65]; typedef time_t CWFileTime; typedef int CWOSResult; #else #error Unknown plugin API! #endif #define CWSUCCESS(result) ((result) == 0) #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS && !defined(__MACH__) #define CW_CALLBACK pascal CWResult #define CW_CALLBACK_PTR(function_name) pascal CWResult (function_name) #define CWPLUGIN_ENTRY(function_name) pascal short (function_name) #elif CWPLUGIN_HOST == CWPLUGIN_HOST_WIN32 #define CW_CALLBACK CWResult __stdcall #define CW_CALLBACK_PTR(function_name) CWResult (__stdcall function_name) #define CWPLUGIN_ENTRY(function_name) short (__stdcall function_name) #elif CWPLUGIN_HOST==CWPLUGIN_HOST_SOLARIS || CWPLUGIN_HOST==CWPLUGIN_HOST_LINUX || defined(__MACH__) #define CW_CALLBACK CWResult #define CW_CALLBACK_PTR(function_name) CWResult (function_name) #define CWPLUGIN_ENTRY(function_name) short (function_name) #else #error Unknown plugin host! #endif /* information returned by CWFindAndLoadFile */ typedef struct CWFileInfo { Boolean fullsearch; /* [<-] do we do a full search of paths for file */ char dependencyType; /* [<-] type CWDependencyType */ SInt32 isdependentoffile; /* [<-] this file is a dependent of file id */ /* (zero based) or -1L if of current file */ Boolean suppressload; /* [<-] find but don't load the file */ Boolean padding; /* [**] structure padding */ const char* filedata; /* [->] point to the file text/data, or NULL */ SInt32 filedatalength; /* [->] length of filedata */ short filedatatype; /* [->] type of data pointed to by filedata */ /* the remaining members are valid only when called by compilers */ short fileID; /* [->] use in browse records and dependencies */ CWFileSpec filespec; /* [->] specifies the file on disk */ Boolean alreadyincluded; /* [->] TRUE if already included in current compile */ Boolean recordbrowseinfo; /* [->] record browse info for this file? */ } CWFileInfo; /* information maintained by the IDE for each segment in the project */ typedef struct CWProjectSegmentInfo { char name[32]; /* segment name */ short attributes; /* segment attributes */ } CWProjectSegmentInfo; /* 64 bit address */ typedef struct CWAddr64 { SInt32 lo; /* low order longword of address */ SInt32 hi; /* high order longword of address */ } CWAddr64; /* describes an overlay group, Use CWGetOverlayGroup1Info to iterate over overlay groups */ typedef struct CWOverlay1GroupInfo { char name[256]; /* overlay group name */ CWAddr64 address; /* load address */ SInt32 numoverlays; /* number of overlays in this group */ } CWOverlay1GroupInfo; /* describes an overlay, use CWGetOverlay1Info to iterate over overlays */ typedef struct CWOverlay1Info { char name[256]; /* name of this overlay */ SInt32 numfiles; /* number of files in the overlay */ } CWOverlay1Info; /* describes a file in an overlay, use CWGetOverlayFile1Info to iterate over files. Use */ /* whichfile in calls taking a file number, e.g. CWLoadObjectData or CWGetFileInfo */ typedef struct CWOverlay1FileInfo { SInt32 whichfile; /* flat file number */ } CWOverlay1FileInfo; /* * All compiler errors or warnings which occur at some specific location in some * source file are identified by a CWMessageRef structure. This structure * provides sufficient information for the development environment to locate * and display the exact position associated with a message. For each message, * the compiler provides: * * errorstring: contains a description of the error, e.g. "syntax error" * errorline: contains a subset of the text containing the error * errorlevel: indicates if the "error" is an error, warning, or informational message * CWMessageRef: further info so the IDE can perform two tasks: * - Display a summary of each message, with the "error token" * underlined within the compiler-provided errorline. This * information is provided by the tokenoffset and tokenlength * fields. If tokenLength is zero then no underlining is performed. * * - Open the file containing the error and select the full * text of the error. This information is provided by the * selectionoffset and selectionlength fields. */ typedef struct CWMessageRef { CWFileSpec sourcefile; /* file containing error */ SInt32 linenumber; /* error linenumber in file */ short tokenoffset; /* offset into errorline of token underline */ short tokenlength; /* length of error token to be underlined */ SInt32 selectionoffset; /* start of error for text selection */ SInt32 selectionlength; /* length of error for text selection */ } CWMessageRef; /* message types, used for errorlevel parameter to message routines */ enum { messagetypeInfo, /* informational only */ messagetypeWarning, /* warning message */ messagetypeError /* error message */ }; /* information maintained by the IDE for each file in the project */ typedef struct CWProjectFileInfo { CWFileSpec filespec; /* CW_FileSpec of file in project */ CWFileTime moddate; /* date source file was last modified */ short segment; /* segment number of file */ Boolean hasobjectcode; /* file has object code to be linked */ Boolean hasresources; /* file has resources to be linked */ Boolean isresourcefile; /* file -is- a resource file to be linked */ Boolean weakimport; /* file has "Import Weak" flag set */ Boolean initbefore; /* file has "Init Before" flag set */ Boolean gendebug; /* file has generate debug info on */ CWFileTime objmoddate; /* date object code was last modified */ CWFileName dropinname; /* name of dropin used to process this file */ short fileID; /* fileID to use in browse records */ Boolean recordbrowseinfo; /* record browse info for this file? */ Boolean reserved; /* reserved and used internally */ #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS /* some Macintosh-specific information */ OSType filetype; /* MacOS file type */ OSType filecreator; /* MacOS file creator */ #endif Boolean hasunitdata; /* file has associated unit data (Pascal) */ Boolean mergeintooutput; /* file has "Merge Into Output" flag set */ UInt32 unitdatadependencytag; /* dependency tag (i.e. checksum) of unit data (Pascal) */ } CWProjectFileInfo; typedef struct CWNewTextDocumentInfo { const char* documentname; /* name for new document, can be NULL */ CWMemHandle text; /* initial text for document */ Boolean markDirty; /* mark doc as needing to be saved? */ } CWNewTextDocumentInfo; typedef struct CWNewProjectEntryInfo { /* use kDefaultLinkPosition to get default link order, overlay, or segment */ SInt32 position; /* optional link order position */ SInt32 segment; /* optional segment number */ SInt32 overlayGroup; /* optional overlay group number */ SInt32 overlay; /* optional overlay number */ const char* groupPath; /* optional fully qualified path to file group */ Boolean mergeintooutput; /* set merge into output flag? */ Boolean weakimport; /* set weak import flag? */ Boolean initbefore; /* set initbefore flag? */ } CWNewProjectEntryInfo; typedef struct CWIDEInfo { unsigned short majorVersion; unsigned short minorVersion; unsigned short bugFixVersion; unsigned short buildVersion; unsigned short dropinAPIVersion; } CWIDEInfo; /* Structures for getting the list of access paths. */ /* The callback does the filtering on the host flags, so the list returned */ /* will only contain the paths that are enabled for the host platform. */ /* There are separate APIs to get the Mac OS X framework style access paths. */ typedef enum CWAccessPathType { cwSystemPath, cwUserPath } CWAccessPathType; typedef struct CWAccessPathInfo { CWFileSpec pathSpec; Boolean recursive; SInt32 subdirectoryCount; } CWAccessPathInfo; typedef struct CWAccessPathListInfo { SInt32 systemPathCount; SInt32 userPathCount; Boolean alwaysSearchUserPaths; Boolean convertPaths; } CWAccessPathListInfo; /* Structures for getting the list of Mac OS X framework access paths. */ /* The callback does the filtering on the host flags, so the list returned */ /* will only contain the Mac OS X framework style paths that are enabled for */ /* the host platform. */ /* There are separate APIs to get the traditional style access paths. */ typedef struct CWFrameworkAccessPathInfo { CWFileSpec pathSpec; Boolean framework; } CWFrameworkAccessPathInfo; typedef struct CWFrameworkAccessPathListInfo { SInt32 systemPathCount; SInt32 userPathCount; Boolean alwaysSearchUserPaths; Boolean convertPaths; Boolean requireFrameworkIncludes; } CWFrameworkAccessPathListInfo; /* constants for different types of plugins */ /* Used in the dropintype in the DropInFlags, as well as for the MacOS file type */ enum { CWDROPINLINKERTYPE = CWFOURCHAR('L','i','n','k'), /* type for DropIn linkers */ CWDROPINCOMPILERTYPE= CWFOURCHAR('C','o','m','p'), /* type for DropIn compilers */ CWDROPINPREFSTYPE = CWFOURCHAR('P','a','n','L'), /* type for DropIn panels */ CWDROPINPREFSTYPE_1 = CWFOURCHAR('P','a','n','l'), /* type for 1.x IDE DropIn panels */ CWDROPINVCSTYPE = CWFOURCHAR('V','C','S',' '), /* type for DropIn version control */ CWDROPINCOMTYPE = CWFOURCHAR('C','O','M',' ') /* type for COM-only plugins */ }; typedef SInt32 CWPluginType; // one of the above types /* Format of 'Flag' resources, or data returned by dropin's GetDropinFlags entry */ /* point. */ /* */ /* For the version 2 of these resource, we renamed the 'apiversion' field to */ /* 'earliestCompatibleAPIVersion' and added the 'newestAPIVersion' field. */ /* This allows plugins to support more than one API version and therefore run */ /* under more than one version of the IDE. The CWGetAPIVersion call should be used */ /* to determine what API version the IDE is using to talk to a plugin. */ #define kCurrentDropInFlagsVersion 2 typedef struct DropInFlagsV1 { short rsrcversion; /* version number of resource */ CWDataType dropintype; /* dropin type (compiler, panel, etc) */ /* earliest API support by this plugin */ unsigned short earliestCompatibleAPIVersion; UInt32 dropinflags; /* capability flags */ CWDataType edit_language; /* language */ } DropInFlagsV1, **DropInFlagsHandleV1; typedef struct DropInFlags { short rsrcversion; /* version number of resource */ CWDataType dropintype; /* dropin type (compiler, panel, etc) */ /* earliest API support by this plugin */ unsigned short earliestCompatibleAPIVersion; UInt32 dropinflags; /* capability flags */ CWDataType edit_language; /* language */ unsigned short newestAPIVersion; /* newest API version supported */ } DropInFlags, **DropInFlagsHandle; #define kCurrentCWPanelListVersion 1 typedef struct CWPanelList { short version; short count; const char** names; } CWPanelList; #define kCurrentCWFamilyListVersion 1 #define kCurrentCWFamilyResourceVersion 1 typedef struct CWFamily { CWDataType type; const char* name; } CWFamily; typedef struct CWFamilyList { short version; short count; CWFamily* families; } CWFamilyList; typedef struct CWFamilyResource { short version; CWDataType type; unsigned char name[64]; } CWFamilyResource; #define kCurrentCWHelpInfoVersion 1 typedef struct CWHelpInfo { short version; const char* helpFileName; } CWHelpInfo; #define kCurrentCWRelativePathVersion 1 typedef enum CWRelativePathFormat { format_Generic = 0, // Simple name, not platform-specific format_Mac, // Uses : as separator :: for parent directory format_Win, // Uses \ as separator .. for parent directory format_Unix // Uses / as separator .. for parent directory } CWRelativePathFormat; typedef enum CWRelativePathTypes { type_Absolute = 0, type_Project, type_Compiler, type_System, type_UserDefined } CWRelativePathTypes; typedef struct CWRelativePath { short version; // version number unsigned char pathType; // use CWRelativePathTypes unsigned char pathFormat; // use CWRelativePathFormat char userDefinedTree[256]; // user-defined tree name char pathString[512]; // actual path string } CWRelativePath; /* * */ #define kCurrentCWPluginInfoVersion 1 typedef struct CWPluginInfo { short version; // struct version number const char* companyName; // i.e. Metrowerks const char* pluginName; // Defaults to Dropin->GetName() const char* pluginDisplayName; const char* familyName; // i.e. Java unsigned short majorIDEVersion; // Version of IDE Required unsigned short minorIDEVersion; } CWPluginInfo; /* Declaration of plugin entry points that must be implemented by non-MacOS plugins */ /* It can also be implemented for MacOS plugins instead of having a 'Flag' resource */ CWPLUGIN_ENTRY (CWPlugin_GetDropInFlags)(const DropInFlags**, SInt32* flagsSize); /* Declaration of plugin entry points that may optionally be implemented by plugins */ /* These entry points override the corresponding resources on MacOS */ CWPLUGIN_ENTRY (CWPlugin_GetDropInName)(const char** dropInName); CWPLUGIN_ENTRY (CWPlugin_GetDisplayName)(const char** displayName); CWPLUGIN_ENTRY (CWPlugin_GetPanelList)(const CWPanelList** panelList); CWPLUGIN_ENTRY (CWPlugin_GetFamilyList)(const CWFamilyList** familyList); CWPLUGIN_ENTRY (CWPlugin_GetHelpInfo)(const CWHelpInfo** helpInfo); /* Declaration of info plugin entry point that must be implemented by all COM plugins */ CWPLUGIN_ENTRY (CWPlugin_GetPluginInfo)(const CWPluginInfo** pluginInfo); /* Callback declarations: these callbacks are supported for all CodeWarrior plugins */ /* Get the action the IDE is requesting of the plugin */ CW_CALLBACK CWGetPluginRequest(CWPluginContext context, SInt32* request); /* Call when finished handling a request, just before returning to the shell */ CW_CALLBACK CWDonePluginRequest(CWPluginContext, CWResult resultCode); /* Get the version number of API used by the IDE to talk to the plugin */ CW_CALLBACK CWGetAPIVersion(CWPluginContext context, SInt32* version); /* Get information about the IDE being used */ CW_CALLBACK CWGetIDEInfo(CWPluginContext context, CWIDEInfo* info); /* Get the OS error associated with the last callback */ CW_CALLBACK CWGetCallbackOSError(CWPluginContext context, CWOSResult* error); /* Set the OS error associated with a failed plugin request */ CW_CALLBACK CWSetPluginOSError(CWPluginContext context, CWOSResult); /* Get the file specifier for the current project */ CW_CALLBACK CWGetProjectFile(CWPluginContext context, CWFileSpec* projectSpec); /* Get the directory where the IDE stores target-specific generated data */ CW_CALLBACK CWGetTargetDataDirectory(CWPluginContext context, CWFileSpec* targetDataDirectorySpec); /* Get the name of the current target in the current project */ CW_CALLBACK CWGetTargetName(CWPluginContext context, char* name, short maxLength); /* Get the directory where output files should be stored */ CW_CALLBACK CWGetOutputFileDirectory(CWPluginContext context, CWFileSpec* outputFileDirectory); /* Get the number of files in the current project */ CW_CALLBACK CWGetProjectFileCount(CWPluginContext context, SInt32* count); /* Get information about a particular file in the project */ CW_CALLBACK CWGetFileInfo(CWPluginContext context, SInt32 whichfile, Boolean checkFileLocation, CWProjectFileInfo* fileinfo); /* Search for a file by name on the current file's access paths. */ CW_CALLBACK CWFindAndLoadFile(CWPluginContext context, const char* filename, CWFileInfo *fileinfo); /* Get the access paths for the current target */ CW_CALLBACK CWGetAccessPathListInfo(CWPluginContext context, CWAccessPathListInfo* pathListInfo); CW_CALLBACK CWGetAccessPathInfo(CWPluginContext context, CWAccessPathType pathType, SInt32 whichPath, CWAccessPathInfo* pathInfo); CW_CALLBACK CWGetAccessPathSubdirectory(CWPluginContext context, CWAccessPathType pathType, SInt32 whichPath, SInt32 whichSubdirectory, CWFileSpec* subdirectory); CW_CALLBACK CWGetFrameworkAccessPathListInfo(CWPluginContext context, CWFrameworkAccessPathListInfo* pathListInfo); CW_CALLBACK CWGetFrameworkAccessPathInfo(CWPluginContext context, CWAccessPathType pathType, SInt32 whichPath, CWFrameworkAccessPathInfo* pathInfo); /* Get file text, from the editor, include file cache, or by reading the file */ CW_CALLBACK CWGetFileText(CWPluginContext context, const CWFileSpec* filespec, const char** text, SInt32* textLength, short* filedatatype); /* Release file text returned by CWFindAndLoadFile and CWGetFileText */ CW_CALLBACK CWReleaseFileText(CWPluginContext context, const char* text); /* Get information about a project segment */ CW_CALLBACK CWGetSegmentInfo(CWPluginContext context, SInt32 whichsegment, CWProjectSegmentInfo* segmentinfo); /* Get the number of overlay groups in the target */ CW_CALLBACK CWGetOverlay1GroupsCount(CWPluginContext context, SInt32* count); /* Get information about a project overlay group */ CW_CALLBACK CWGetOverlay1GroupInfo(CWPluginContext context, SInt32 whichgroup, CWOverlay1GroupInfo* groupinfo); /* Get information about an overlay within a group */ CW_CALLBACK CWGetOverlay1Info(CWPluginContext context, SInt32 whichgroup, SInt32 whichoverlay, CWOverlay1Info* overlayinfo); /* Get information about a file in an overlay */ CW_CALLBACK CWGetOverlay1FileInfo(CWPluginContext context, SInt32 whichgroup, SInt32 whichoverlay, SInt32 whichoverlayfile, CWOverlay1FileInfo* fileinfo); /* Report a error, warning, or informational message */ CW_CALLBACK CWReportMessage(CWPluginContext context, const CWMessageRef* msgRef, const char *line1, const char *line2, short errorlevel, SInt32 errorNumber); /* Display an alert. May actually be put in a message, depending on the plugin request */ CW_CALLBACK CWAlert(CWPluginContext context, const char* msg1, const char* msg2, const char* msg3, const char* msg4); /* Display one or two status messages to the user */ CW_CALLBACK CWShowStatus(CWPluginContext context, const char *line1, const char *line2); /* Give to the IDE to handle events and check if user has canceled this operation */ CW_CALLBACK CWUserBreak(CWPluginContext context); /* Return stored preference data, referenced by name. Typically used for preference */ /* panel settings. */ CW_CALLBACK CWGetNamedPreferences(CWPluginContext context, const char* prefsname, CWMemHandle* prefsdata); /* Store data referenced by a data type and file number */ CW_CALLBACK CWStorePluginData(CWPluginContext context, SInt32 whichfile, CWDataType type, CWMemHandle prefsdata); /* Return stored data referenced by a data type and file number */ CW_CALLBACK CWGetPluginData(CWPluginContext context, SInt32 whichfile, CWDataType type, CWMemHandle* prefsdata); /* Inform the IDE that a file modification date has changed. isGenerated is for use */ /* by compiler and linker plugins only */ CW_CALLBACK CWSetModDate(CWPluginContext context, const CWFileSpec* filespec, CWFileTime* moddate, Boolean isGenerated); /* Ask the IDE to add a file to the current target in the current project. isGenerated */ /* is for use by compiler plugins only. */ CW_CALLBACK CWAddProjectEntry(CWPluginContext context, const CWFileSpec* fileSpec, Boolean isGenerated, const CWNewProjectEntryInfo* projectEntryInfo, SInt32* whichfile); /* Ask the IDE to remove a file from the current target (link-order/segment/overlay) in the current project. */ /* If it's the last target that contains the file, it would be removed from the file list. */ CW_CALLBACK CWRemoveProjectEntry(CWPluginContext context, const CWFileSpec* fileSpec); /* Create a new editor window, supplying initial text and an optional document name */ CW_CALLBACK CWCreateNewTextDocument(CWPluginContext, const CWNewTextDocumentInfo* docinfo); /* Allocate memory. Permanent memory is not freed until the plugin is unloaded. */ /* Temporary memory is freed after each plugin request completes. */ CW_CALLBACK CWAllocateMemory(CWPluginContext context, SInt32 size, Boolean isPermanent, void** ptr); /* Free memory allocated via CWAllocateMemory */ CW_CALLBACK CWFreeMemory(CWPluginContext context, void* ptr, Boolean isPermanent); /* Allocate a memory handle of the requested size. All handles are automatically */ /* freed at the end of each compiler/linker request. useTempMemory is MacOS-specific*/ CW_CALLBACK CWAllocMemHandle(CWPluginContext context, SInt32 size, Boolean useTempMemory, CWMemHandle* handle); /* Free a memory handle */ CW_CALLBACK CWFreeMemHandle(CWPluginContext context, CWMemHandle handle); /* Return the current size of a memory handle */ CW_CALLBACK CWGetMemHandleSize(CWPluginContext context, CWMemHandle handle, SInt32* size); /* Resize an existing memory handle */ CW_CALLBACK CWResizeMemHandle(CWPluginContext context, CWMemHandle handle, SInt32 newSize); /* To obtain a pointer to the block, you must lock the handle */ /* moveHi is MacOS-specific */ CW_CALLBACK CWLockMemHandle(CWPluginContext context, CWMemHandle handle, Boolean moveHi, void** ptr); /* Unlock a memory handle, the pointer returned by locking the handle may no */ /* longer be valid */ CW_CALLBACK CWUnlockMemHandle(CWPluginContext context, CWMemHandle handle); #if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS /* Utility function to map MacOS error codes to a CWResult code. Plugins */ /* may internally generate OSErrs, but need to return CWResult to the */ /* CodeWarrior IDE */ CW_CALLBACK CWMacOSErrToCWResult(CWPluginContext context, OSErr err); #endif /* Turn off the built in PP window manager while the plugin displays a dialog */ CW_CALLBACK CWPreDialog(CWPluginContext context); /* Turn on the built in PP window manager after the plugin is through with its */ /* dialog */ CW_CALLBACK CWPostDialog(CWPluginContext context); /* Notify the IDE that the plugin will be performing actions on a file */ CW_CALLBACK CWPreFileAction(CWPluginContext context, const CWFileSpec *theFile); /* Notify the IDE that the plugin is finished performing actions on a file */ CW_CALLBACK CWPostFileAction(CWPluginContext context, const CWFileSpec *theFile); CW_CALLBACK CWResolveRelativePath(CWPluginContext context, const CWRelativePath* relativePath, CWFileSpec* fileSpec, Boolean create); CW_CALLBACK CWFindLogicalDirectory(CWPluginContext context, SInt32 selector, CWFileSpec *dirSpec); CW_CALLBACK CWOpenFileInEditor(CWPluginContext context, const CWFileSpec *fileSpec); #if CWPLUGIN_HOST==CWPLUGIN_HOST_SOLARIS || CWPLUGIN_HOST==CWPLUGIN_HOST_LINUX /* Forward declarations */ struct ICodeWarriorApp; struct ICodeWarriorProject; struct ICodeWarriorDesign; struct ICodeWarriorTarget; #endif /* CWPLUGIN_HOST==CWPLUGIN_HOST_SOLARIS || CWPLUGIN_HOST==CWPLUGIN_HOST_LINUX */ /* Get the IDE application COM interface. Fails if called from any thread */ /* other than the main IDE thread, e.g. a build thread. */ CW_CALLBACK CWGetCOMApplicationInterface(CWPluginContext context, struct ICodeWarriorApp **app); /* Get the current project COM interface. Adds a reference upon return. */ /* Only succeeds if the plugin is being called in the context of a */ /* particular project. Fails if called from any thread */ /* other than the main IDE thread, e.g. a build thread. */ CW_CALLBACK CWGetCOMProjectInterface(CWPluginContext context, struct ICodeWarriorProject **project); /* Get the current design COM interface. Adds a reference upon return. */ /* Only succeeds if the plugin is being called in the context of a */ /* particular target that is associated with a design. */ /* Fails if called from any thread other than the main IDE thread, */ /* e.g. a build thread. */ CW_CALLBACK CWGetCOMDesignInterface(CWPluginContext context, struct ICodeWarriorDesign **design); /* Get the current target COM interface. Adds a reference upon return. */ /* Only succeeds if the plugin is being called in the context of a */ /* particular target. Fails if called from any thread */ /* other than the main IDE thread, e.g. a build thread. */ CW_CALLBACK CWGetCOMTargetInterface(CWPluginContext context, struct ICodeWarriorTarget **target); #if CW_USE_PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #ifdef _MSC_VER #pragma pack(pop) #endif #ifdef __MWERKS__ #pragma options align=reset #endif #endif /* __CWPlugins_H__ */ \ No newline at end of file diff --git a/unsorted/Arguments.c b/unsorted/Arguments.c index 663d211..631f282 100644 --- a/unsorted/Arguments.c +++ b/unsorted/Arguments.c @@ -557,8 +557,7 @@ void Arg_AddToToolArgs(anon0_50 *ta, short tokval, char *toktxt) { Arg_GrowArg(ta, ","); break; default: -#line 787 - CLPFatalError(__FILE__, __LINE__, "Unknown token (%d)", tokval); + CLPFatalError(__FILE__, 787, "Unknown token (%d)", tokval); break; } } diff --git a/unsorted/Option.c b/unsorted/Option.c index c1c8e91..e4851dc 100644 --- a/unsorted/Option.c +++ b/unsorted/Option.c @@ -81,8 +81,7 @@ int Args_StackSize(void) { } void Args_Push(short flags, void *first, void *second) { -#line 104 - OPTION_ASSERT(oStackPtr 0) { short prev = @@ -943,8 +942,7 @@ static int Options_DoParse(OptionList *search, int flags) { tok = Arg_GetToken(); if (!tok) tok = Arg_UndoToken(); -#line 1335 - OPTION_ASSERT(tok); + OS_ASSERT(1335, tok); } if (!parsedany || haderrors) diff --git a/unsorted/Parameter.c b/unsorted/Parameter.c index 03e4a75..31669e1 100644 --- a/unsorted/Parameter.c +++ b/unsorted/Parameter.c @@ -1012,8 +1012,7 @@ static int Param_GetArgument(PARAM_T *param, const char **cparam, int exec) { lastOpt = !subparse ? ATK_END : ATK_ARG_END; tok = Arg_PeekToken(); -#line 1467 - OPTION_ASSERT(tok); + OS_ASSERT(1467, tok); if ((param->flags & PARAMFLAGS_3) == 0) { if (tok->val == nextParam || tok->val == ATK_EQUALS) diff --git a/unsorted/ParserHelpers-cc.c b/unsorted/ParserHelpers-cc.c index fe081ad..07315b3 100644 --- a/unsorted/ParserHelpers-cc.c +++ b/unsorted/ParserHelpers-cc.c @@ -140,16 +140,14 @@ int SetupPragmas(const Pragma *pragmas) { else if (*((char *)pragmas->value) == PR_RESET) set = "reset"; else -#line 186 - OPTION_ASSERT(*((char *)pragmas->value) == PR_UNSET); + OS_ASSERT(186, *((char *)pragmas->value) == PR_UNSET); if (set) { snprintf(tmp, sizeof(tmp), "#pragma %s %s\n", pragmas->pragma, set); AddStringToHandle(&definesHandle, tmp); } } else { -#line 195 - OPTION_ASSERT(!"Can't handle pragma"); + OS_ASSERT(195, !"Can't handle pragma"); } pragmas++; } diff --git a/unsorted/Targets.c b/unsorted/Targets.c index 1c00170..378b9d7 100644 --- a/unsorted/Targets.c +++ b/unsorted/Targets.c @@ -5,8 +5,7 @@ ParserTool *pTool; int SetParserToolInfo(ParserTool *tool) { pTool = tool; -#line 16 - OPTION_ASSERT(pTool->toolInfo && (parseopts.toolVersion || pTool->copyright)); + OS_ASSERT(16, pTool->toolInfo && (parseopts.toolVersion || pTool->copyright)); return 1; } -- cgit v1.2.3