LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc/m2/gm2-compiler-boot - M2Options.c (source / functions) Coverage Total Hit
Test: gcc.info Lines: 52.6 % 725 381
Test Date: 2026-02-28 14:20:25 Functions: 51.0 % 155 79
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* do not edit automatically generated by mc from M2Options.  */
       2              : /* M2Options.mod initializes the user options.
       3              : 
       4              : Copyright (C) 2001-2026 Free Software Foundation, Inc.
       5              : Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
       6              : 
       7              : This file is part of GNU Modula-2.
       8              : 
       9              : GNU Modula-2 is free software; you can redistribute it and/or modify
      10              : it under the terms of the GNU General Public License as published by
      11              : the Free Software Foundation; either version 3, or (at your option)
      12              : any later version.
      13              : 
      14              : GNU Modula-2 is distributed in the hope that it will be useful, but
      15              : WITHOUT ANY WARRANTY; without even the implied warranty of
      16              : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      17              : General Public License for more details.
      18              : 
      19              : You should have received a copy of the GNU General Public License
      20              : along with GNU Modula-2; see the file COPYING3.  If not see
      21              : <http://www.gnu.org/licenses/>.  */
      22              : 
      23              : #include "config.h"
      24              : #include "system.h"
      25              : #include "gcc-consolidation.h"
      26              : 
      27              : #include <stdbool.h>
      28              : #   if !defined (PROC_D)
      29              : #      define PROC_D
      30              :        typedef void (*PROC_t) (void);
      31              :        typedef struct { PROC_t proc; } PROC;
      32              : #   endif
      33              : 
      34              : #   if !defined (TRUE)
      35              : #      define TRUE (1==1)
      36              : #   endif
      37              : 
      38              : #   if !defined (FALSE)
      39              : #      define FALSE (1==0)
      40              : #   endif
      41              : 
      42              : #if defined(__cplusplus)
      43              : #   undef NULL
      44              : #   define NULL 0
      45              : #endif
      46              : #define _M2Options_C
      47              : 
      48              : #include "GM2Options.h"
      49              : #   include "GCmdArgs.h"
      50              : #   include "GSArgs.h"
      51              : #   include "GM2Search.h"
      52              : #   include "GPathName.h"
      53              : #   include "GM2Printf.h"
      54              : #   include "GFIO.h"
      55              : #   include "Glibc.h"
      56              : #   include "GDebug.h"
      57              : #   include "Ggcctypes.h"
      58              : #   include "Gm2configure.h"
      59              : #   include "GM2Error.h"
      60              : #   include "GFormatStrings.h"
      61              : #   include "Gm2misc.h"
      62              : #   include "GDynamicStrings.h"
      63              : 
      64              : #   define Debugging false
      65              : #   define DefaultRuntimeModuleOverride "m2iso:RTentity,m2iso:Storage,m2iso:SYSTEM,m2iso:M2RTS,m2iso:RTExceptions,m2iso:IOLink"
      66              : static DynamicStrings_String DumpDeclFilename;
      67              : static DynamicStrings_String DumpQuadFilename;
      68              : static DynamicStrings_String DumpGimpleFilename;
      69              : static DynamicStrings_String M2Dump;
      70              : static DynamicStrings_String M2DumpFilter;
      71              : static DynamicStrings_String M2Prefix;
      72              : static DynamicStrings_String M2PathName;
      73              : static DynamicStrings_String Barg;
      74              : static DynamicStrings_String MFarg;
      75              : static DynamicStrings_String MTFlag;
      76              : static DynamicStrings_String MQFlag;
      77              : static DynamicStrings_String DepTarget;
      78              : static DynamicStrings_String CmdLineObj;
      79              : static DynamicStrings_String SaveTempsDir;
      80              : static DynamicStrings_String DumpDir;
      81              : static DynamicStrings_String GenModuleListFilename;
      82              : static DynamicStrings_String UselistFilename;
      83              : static DynamicStrings_String RuntimeModuleOverride;
      84              : static DynamicStrings_String CppArgs;
      85              : static bool EnableForward;
      86              : static bool DebugFunctionLineNumbers;
      87              : static bool DebugTraceQuad;
      88              : static bool DebugTraceLine;
      89              : static bool DebugTraceToken;
      90              : static bool DebugTraceTree;
      91              : static bool DumpDecl;
      92              : static bool DumpGimple;
      93              : static bool DumpQuad;
      94              : static bool WidesetFlag;
      95              : static bool MFlag;
      96              : static bool MMFlag;
      97              : static bool MPFlag;
      98              : static bool MDFlag;
      99              : static bool MMDFlag;
     100              : static bool IBMLongDouble;
     101              : static bool IEEELongDouble;
     102              : static bool UselistFlag;
     103              : static bool CC1Quiet;
     104              : static bool SeenSources;
     105              : static unsigned int OffTBits;
     106              : static location_t ForcedLocationValue;
     107              : 
     108              : /*
     109              :    SetM - set the MFlag.
     110              : */
     111              : 
     112              : extern "C" void M2Options_SetM (bool value);
     113              : 
     114              : /*
     115              :    GetM - set the MFlag.
     116              : */
     117              : 
     118              : extern "C" bool M2Options_GetM (void);
     119              : 
     120              : /*
     121              :    SetMM - set the MMFlag.
     122              : */
     123              : 
     124              : extern "C" void M2Options_SetMM (bool value);
     125              : 
     126              : /*
     127              :    GetMM - set the MMFlag.
     128              : */
     129              : 
     130              : extern "C" bool M2Options_GetMM (void);
     131              : 
     132              : /*
     133              :    SetMF - assigns MFarg to the filename from arg.
     134              : */
     135              : 
     136              : extern "C" void M2Options_SetMF (void * arg);
     137              : 
     138              : /*
     139              :    GetMF - returns MFarg or NIL if never set.
     140              : */
     141              : 
     142              : extern "C" void * M2Options_GetMF (void);
     143              : 
     144              : /*
     145              :    SetM2Prefix - assign arg to M2Prefix.
     146              : */
     147              : 
     148              : extern "C" void M2Options_SetM2Prefix (void * arg);
     149              : 
     150              : /*
     151              :    GetM2Prefix - return M2Prefix as a C string.
     152              : */
     153              : 
     154              : extern "C" void * M2Options_GetM2Prefix (void);
     155              : 
     156              : /*
     157              :    SetM2PathName - assign arg to M2PathName.
     158              : */
     159              : 
     160              : extern "C" void M2Options_SetM2PathName (void * arg);
     161              : 
     162              : /*
     163              :    GetM2PathName - return M2PathName as a C string.
     164              : */
     165              : 
     166              : extern "C" void * M2Options_GetM2PathName (void);
     167              : 
     168              : /*
     169              :    SetPPOnly - set the PPonly (preprocess only) to value.
     170              : */
     171              : 
     172              : extern "C" void M2Options_SetPPOnly (bool value);
     173              : 
     174              : /*
     175              :    GetPPOnly - get the PPonly (preprocess only).
     176              : */
     177              : 
     178              : extern "C" bool M2Options_GetPPOnly (void);
     179              : 
     180              : /*
     181              :    Setc - set the cflag (compile only flag -c) to value.
     182              : */
     183              : 
     184              : extern "C" void M2Options_Setc (bool value);
     185              : 
     186              : /*
     187              :    Getc - get the cflag (compile only flag -c).
     188              : */
     189              : 
     190              : extern "C" bool M2Options_Getc (void);
     191              : 
     192              : /*
     193              :    SetB - assigns Barg to arg.
     194              : */
     195              : 
     196              : extern "C" void M2Options_SetB (void * arg);
     197              : 
     198              : /*
     199              :    GetB - returns Barg value as a C string or NIL if it was never set.
     200              : */
     201              : 
     202              : extern "C" void * M2Options_GetB (void);
     203              : 
     204              : /*
     205              :    SetMD - set the MDFlag to value.
     206              : */
     207              : 
     208              : extern "C" void M2Options_SetMD (bool value);
     209              : 
     210              : /*
     211              :    GetMD - return the MDFlag.
     212              : */
     213              : 
     214              : extern "C" bool M2Options_GetMD (void);
     215              : 
     216              : /*
     217              :    SetMMD - set the MMDFlag to value.
     218              : */
     219              : 
     220              : extern "C" void M2Options_SetMMD (bool value);
     221              : 
     222              : /*
     223              :    GetMMD - return the MMDFlag.
     224              : */
     225              : 
     226              : extern "C" bool M2Options_GetMMD (void);
     227              : 
     228              : /*
     229              :    SetMQ - adds a quoted target arg to the DepTarget sentence.
     230              : */
     231              : 
     232              : extern "C" void M2Options_SetMQ (void * arg);
     233              : 
     234              : /*
     235              :    GetMQ - returns a C string containing all the -MQ arg values.
     236              : */
     237              : 
     238              : extern "C" void * M2Options_GetMQ (void);
     239              : 
     240              : /*
     241              :    SetMT - adds a target arg to the DepTarget sentence.
     242              : */
     243              : 
     244              : extern "C" void M2Options_SetMT (void * arg);
     245              : 
     246              : /*
     247              :    GetMT - returns a C string containing all the -MT arg values.
     248              : */
     249              : 
     250              : extern "C" void * M2Options_GetMT (void);
     251              : 
     252              : /*
     253              :    GetDepTarget - returns the DepTarget as a C string.
     254              : */
     255              : 
     256              : extern "C" void * M2Options_GetDepTarget (void);
     257              : 
     258              : /*
     259              :    SetMP - set the MPflag to value.
     260              : */
     261              : 
     262              : extern "C" void M2Options_SetMP (bool value);
     263              : 
     264              : /*
     265              :    GetMP - get the MPflag.
     266              : */
     267              : 
     268              : extern "C" bool M2Options_GetMP (void);
     269              : 
     270              : /*
     271              :    SetObj - assigns CmdLineObj to the filename from arg.
     272              : */
     273              : 
     274              : extern "C" void M2Options_SetObj (void * arg);
     275              : 
     276              : /*
     277              :    GetObj - returns CmdLineObj filename as a c-string or NIL if it was never set.
     278              : */
     279              : 
     280              : extern "C" void * M2Options_GetObj (void);
     281              : 
     282              : /*
     283              :    SetCpp - enables the source to be preprocessed and enables the
     284              :             recognition of C preprocessor line directives.
     285              : */
     286              : 
     287              : extern "C" bool M2Options_SetCpp (bool value);
     288              : 
     289              : /*
     290              :    GetCpp - returns TRUE if the C preprocessor was used.
     291              : */
     292              : 
     293              : extern "C" bool M2Options_GetCpp (void);
     294              : 
     295              : /*
     296              :    GetLineDirectives - returns TRUE if line directives are allowed.
     297              : */
     298              : 
     299              : extern "C" bool M2Options_GetLineDirectives (void);
     300              : 
     301              : /*
     302              :    SetScaffoldDynamic - set the -fscaffold-dynamic flag.
     303              : */
     304              : 
     305              : extern "C" void M2Options_SetScaffoldDynamic (bool value);
     306              : 
     307              : /*
     308              :    SetScaffoldStatic - set the -fscaffold-static flag.
     309              : */
     310              : 
     311              : extern "C" void M2Options_SetScaffoldStatic (bool value);
     312              : 
     313              : /*
     314              :    GetScaffoldDynamic - get the -fscaffold-dynamic flag.
     315              : */
     316              : 
     317              : extern "C" bool M2Options_GetScaffoldDynamic (void);
     318              : 
     319              : /*
     320              :    GetScaffoldStatic - get the -fscaffold-static flag.
     321              : */
     322              : 
     323              : extern "C" bool M2Options_GetScaffoldStatic (void);
     324              : 
     325              : /*
     326              :    SetScaffoldMain - set the -fscaffold-main flag.
     327              : */
     328              : 
     329              : extern "C" void M2Options_SetScaffoldMain (bool value);
     330              : 
     331              : /*
     332              :    SetRuntimeModuleOverride - set the override sequence used for module
     333              :                               initialization and finialization.
     334              : */
     335              : 
     336              : extern "C" void M2Options_SetRuntimeModuleOverride (void * override);
     337              : 
     338              : /*
     339              :    GetRuntimeModuleOverride - return a string containing any user override
     340              :                               or the default module initialization override
     341              :                               sequence.
     342              : */
     343              : 
     344              : extern "C" void * M2Options_GetRuntimeModuleOverride (void);
     345              : 
     346              : /*
     347              :    SetUselist - set the uselist flag to value and remember the filename.
     348              : */
     349              : 
     350              : extern "C" void M2Options_SetUselist (bool value, void * filename);
     351              : 
     352              : /*
     353              :    GetUselist - return the uselist flag.
     354              : */
     355              : 
     356              : extern "C" bool M2Options_GetUselist (void);
     357              : 
     358              : /*
     359              :    GetUselistFilename - return the uselist filename as a String.
     360              : */
     361              : 
     362              : extern "C" DynamicStrings_String M2Options_GetUselistFilename (void);
     363              : 
     364              : /*
     365              :    SetWholeProgram - sets the WholeProgram flag (-fwhole-program).
     366              : */
     367              : 
     368              : extern "C" void M2Options_SetWholeProgram (bool value);
     369              : 
     370              : /*
     371              :    SetAutoInit - -fauto-init turns on automatic initialization of pointers to NIL.
     372              :                   TRUE is returned.
     373              : */
     374              : 
     375              : extern "C" bool M2Options_SetAutoInit (bool value);
     376              : 
     377              : /*
     378              :    SetReturnCheck -
     379              : */
     380              : 
     381              : extern "C" bool M2Options_SetReturnCheck (bool value);
     382              : 
     383              : /*
     384              :    SetNilCheck -
     385              : */
     386              : 
     387              : extern "C" bool M2Options_SetNilCheck (bool value);
     388              : 
     389              : /*
     390              :    SetCaseCheck - set else case checking to, value.
     391              : */
     392              : 
     393              : extern "C" bool M2Options_SetCaseCheck (bool value);
     394              : 
     395              : /*
     396              :    SetCheckAll - set all runtime checking to, value.
     397              : */
     398              : 
     399              : extern "C" bool M2Options_SetCheckAll (bool value);
     400              : 
     401              : /*
     402              :    SetVerboseUnbounded - sets the VerboseUnbounded flag to, value.
     403              : */
     404              : 
     405              : extern "C" bool M2Options_SetVerboseUnbounded (bool value);
     406              : 
     407              : /*
     408              :    SetQuiet - sets the quiet flag to, value.
     409              : */
     410              : 
     411              : extern "C" bool M2Options_SetQuiet (bool value);
     412              : 
     413              : /*
     414              :    SetCC1Quiet - sets the cc1quiet flag to, value.
     415              : */
     416              : 
     417              : extern "C" void M2Options_SetCC1Quiet (bool value);
     418              : 
     419              : /*
     420              :    SetM2g - set GenerateStatementNote to value and return value.
     421              :             Corresponds to the -fm2-g flag.
     422              : */
     423              : 
     424              : extern "C" bool M2Options_SetM2g (bool value);
     425              : 
     426              : /*
     427              :    GetM2g - returns TRUE if the -fm2-g flags was used.
     428              : */
     429              : 
     430              : extern "C" bool M2Options_GetM2g (void);
     431              : 
     432              : /*
     433              :    SetLowerCaseKeywords - set the lower case keyword flag and return the result.
     434              : */
     435              : 
     436              : extern "C" bool M2Options_SetLowerCaseKeywords (bool value);
     437              : 
     438              : /*
     439              :    SetUnboundedByReference -
     440              : */
     441              : 
     442              : extern "C" bool M2Options_SetUnboundedByReference (bool value);
     443              : 
     444              : /*
     445              :    SetSearchPath -
     446              : */
     447              : 
     448              : extern "C" void M2Options_SetSearchPath (void * arg);
     449              : 
     450              : /*
     451              :    SetISO -
     452              : */
     453              : 
     454              : extern "C" void M2Options_SetISO (bool value);
     455              : 
     456              : /*
     457              :    SetPIM -
     458              : */
     459              : 
     460              : extern "C" void M2Options_SetPIM (bool value);
     461              : 
     462              : /*
     463              :    SetPIM2 -
     464              : */
     465              : 
     466              : extern "C" void M2Options_SetPIM2 (bool value);
     467              : 
     468              : /*
     469              :    SetPIM3 -
     470              : */
     471              : 
     472              : extern "C" void M2Options_SetPIM3 (bool value);
     473              : 
     474              : /*
     475              :    SetPIM4 -
     476              : */
     477              : 
     478              : extern "C" void M2Options_SetPIM4 (bool value);
     479              : 
     480              : /*
     481              :    SetPositiveModFloor - sets the positive mod floor option.
     482              : */
     483              : 
     484              : extern "C" void M2Options_SetPositiveModFloor (bool value);
     485              : 
     486              : /*
     487              :    SetWholeDiv - sets the whole division flag.
     488              : */
     489              : 
     490              : extern "C" void M2Options_SetWholeDiv (bool value);
     491              : 
     492              : /*
     493              :    SetIndex - sets the runtime array index checking flag.
     494              : */
     495              : 
     496              : extern "C" void M2Options_SetIndex (bool value);
     497              : 
     498              : /*
     499              :    SetRange -  sets the runtime range checking flag.
     500              : */
     501              : 
     502              : extern "C" void M2Options_SetRange (bool value);
     503              : 
     504              : /*
     505              :    SetExceptions - sets the enable runtime exceptions flag.
     506              : */
     507              : 
     508              : extern "C" void M2Options_SetExceptions (bool value);
     509              : 
     510              : /*
     511              :    SetStyle -
     512              : */
     513              : 
     514              : extern "C" void M2Options_SetStyle (bool value);
     515              : 
     516              : /*
     517              :    SetPedantic -
     518              : */
     519              : 
     520              : extern "C" void M2Options_SetPedantic (bool value);
     521              : 
     522              : /*
     523              :    SetPedanticParamNames - sets the pedantic parameter name flag.
     524              : */
     525              : 
     526              : extern "C" void M2Options_SetPedanticParamNames (bool value);
     527              : 
     528              : /*
     529              :    SetPedanticCast - sets the pedantic cast flag.
     530              : */
     531              : 
     532              : extern "C" void M2Options_SetPedanticCast (bool value);
     533              : 
     534              : /*
     535              :    SetExtendedOpaque - sets the ExtendedOpaque flag.
     536              : */
     537              : 
     538              : extern "C" void M2Options_SetExtendedOpaque (bool value);
     539              : 
     540              : /*
     541              :    SetXCode - sets the xcode flag.
     542              : */
     543              : 
     544              : extern "C" void M2Options_SetXCode (bool value);
     545              : 
     546              : /*
     547              :    SetCompilerDebugging - turn on internal compiler debugging.
     548              :                           Enabled via the command line option -fd.
     549              : */
     550              : 
     551              : extern "C" void M2Options_SetCompilerDebugging (bool value);
     552              : 
     553              : /*
     554              :    SetQuadDebugging - display the quadruples (internal debugging).
     555              : */
     556              : 
     557              : extern "C" void M2Options_SetQuadDebugging (bool value);
     558              : 
     559              : /*
     560              :    SetM2DebugTraceFilter - set internal debug flags.  The flags should be
     561              :                            specified as a comma separated list.  The full
     562              :                            list allowed is quad,line,token,all.
     563              : */
     564              : 
     565              : extern "C" void M2Options_SetM2DebugTraceFilter (bool value, void * filter);
     566              : 
     567              : /*
     568              :    SetDebugFunctionLineNumbers - set DebugFunctionLineNumbers.
     569              : */
     570              : 
     571              : extern "C" void M2Options_SetDebugFunctionLineNumbers (bool value);
     572              : 
     573              : /*
     574              :    SetGenerateStatementNote - turn on generation of nops if necessary
     575              :                               to generate pedalogical single stepping.
     576              : */
     577              : 
     578              : extern "C" void M2Options_SetGenerateStatementNote (bool value);
     579              : 
     580              : /*
     581              :    SetSources -
     582              : */
     583              : 
     584              : extern "C" void M2Options_SetSources (bool value);
     585              : 
     586              : /*
     587              :    SetDumpSystemExports -
     588              : */
     589              : 
     590              : extern "C" void M2Options_SetDumpSystemExports (bool value);
     591              : 
     592              : /*
     593              :    SetSwig -
     594              : */
     595              : 
     596              : extern "C" void M2Options_SetSwig (bool value);
     597              : 
     598              : /*
     599              :    SetOptimizing -
     600              : */
     601              : 
     602              : extern "C" void M2Options_SetOptimizing (unsigned int value);
     603              : 
     604              : /*
     605              :    OverrideLocation - possibly override the location value, depending upon
     606              :                       whether the -flocation= option was used.
     607              : */
     608              : 
     609              : extern "C" location_t M2Options_OverrideLocation (location_t location);
     610              : 
     611              : /*
     612              :    SetForcedLocation - sets the location for the lifetime of this compile to, location.
     613              :                        This is primarily an internal debugging switch.
     614              : */
     615              : 
     616              : extern "C" void M2Options_SetForcedLocation (location_t location);
     617              : 
     618              : /*
     619              :    SetUnusedVariableChecking - assigns the UnusedVariableChecking to value.
     620              : */
     621              : 
     622              : extern "C" void M2Options_SetUnusedVariableChecking (bool value);
     623              : 
     624              : /*
     625              :    SetUnusedParameterChecking - assigns the UnusedParameterChecking to value.
     626              : */
     627              : 
     628              : extern "C" void M2Options_SetUnusedParameterChecking (bool value);
     629              : 
     630              : /*
     631              :    SetStrictTypeChecking - assigns the StrictTypeChecking flag to value.
     632              : */
     633              : 
     634              : extern "C" void M2Options_SetStrictTypeChecking (bool value);
     635              : 
     636              : /*
     637              :    SetStrictTypeAssignment - assigns the StrictTypeAssignment flag to value.
     638              : */
     639              : 
     640              : extern "C" void M2Options_SetStrictTypeAssignment (bool value);
     641              : 
     642              : /*
     643              :    SetStrictTypeReason - assigns the StrictTypeReason flag to value.
     644              : */
     645              : 
     646              : extern "C" void M2Options_SetStrictTypeReason (bool value);
     647              : 
     648              : /*
     649              :    setdefextension - set the source file definition module extension to arg.
     650              :                      This should include the . and by default it is set to .def.
     651              : */
     652              : 
     653              : extern "C" void M2Options_setdefextension (void * arg);
     654              : 
     655              : /*
     656              :    setmodextension - set the source file module extension to arg.
     657              :                      This should include the . and by default it is set to .mod.
     658              : */
     659              : 
     660              : extern "C" void M2Options_setmodextension (void * arg);
     661              : 
     662              : /*
     663              :    SetStatistics - turn on/off generate of compile time statistics.
     664              : */
     665              : 
     666              : extern "C" void M2Options_SetStatistics (bool on);
     667              : 
     668              : /*
     669              :    SetVerbose - set the Verbose flag to, value.  It returns TRUE.
     670              : */
     671              : 
     672              : extern "C" bool M2Options_SetVerbose (bool value);
     673              : 
     674              : /*
     675              :    CppArg - sets the option and arg in the cpp command line.
     676              : */
     677              : 
     678              : extern "C" void M2Options_CppArg (void * opt, void * arg, bool joined);
     679              : 
     680              : /*
     681              :    CppCommandLine - returns the Cpp command line and all arguments.
     682              :                     NIL is returned if the -fcpp is absent.
     683              : */
     684              : 
     685              : extern "C" DynamicStrings_String M2Options_CppCommandLine (void);
     686              : 
     687              : /*
     688              :    CppRemember - remember a string, s, as a cpp related argument.
     689              :                  The string, s, is not garbage collected.
     690              : */
     691              : 
     692              : extern "C" void M2Options_CppRemember (DynamicStrings_String s);
     693              : 
     694              : /*
     695              :    GetISO - return TRUE if -fiso was present on the command line.
     696              : */
     697              : 
     698              : extern "C" bool M2Options_GetISO (void);
     699              : 
     700              : /*
     701              :    GetPIM - return TRUE if -fpim was present on the command line.
     702              : */
     703              : 
     704              : extern "C" bool M2Options_GetPIM (void);
     705              : 
     706              : /*
     707              :    GetPIM2 - return TRUE if -fpim2 was present on the command line.
     708              : */
     709              : 
     710              : extern "C" bool M2Options_GetPIM2 (void);
     711              : 
     712              : /*
     713              :    GetPIM3 - return TRUE if -fpim3 was present on the command line.
     714              : */
     715              : 
     716              : extern "C" bool M2Options_GetPIM3 (void);
     717              : 
     718              : /*
     719              :    GetPIM4 - return TRUE if -fpim4 was present on the command line.
     720              : */
     721              : 
     722              : extern "C" bool M2Options_GetPIM4 (void);
     723              : 
     724              : /*
     725              :    GetPositiveModFloor - return TRUE if -fpositive-mod-floor was present
     726              :                          on the command line.
     727              : */
     728              : 
     729              : extern "C" bool M2Options_GetPositiveModFloor (void);
     730              : 
     731              : /*
     732              :    GetFloatValueCheck - return TRUE if -ffloatvalue was present on the
     733              :                         command line.
     734              : */
     735              : 
     736              : extern "C" bool M2Options_GetFloatValueCheck (void);
     737              : 
     738              : /*
     739              :    SetFloatValueCheck - set depending upon the -ffloatvalue.
     740              : */
     741              : 
     742              : extern "C" void M2Options_SetFloatValueCheck (bool value);
     743              : 
     744              : /*
     745              :    GetWholeValueCheck - return TRUE if -fwholevalue was present on the
     746              :                         command line.
     747              : */
     748              : 
     749              : extern "C" bool M2Options_GetWholeValueCheck (void);
     750              : 
     751              : /*
     752              :    SetWholeValueCheck - set depending upon the -fwholevalue.
     753              : */
     754              : 
     755              : extern "C" void M2Options_SetWholeValueCheck (bool value);
     756              : 
     757              : /*
     758              :    SetWall - set all warnings to, value.
     759              : */
     760              : 
     761              : extern "C" void M2Options_SetWall (bool value);
     762              : 
     763              : /*
     764              :    SetSaveTemps - turn on/off -save-temps.
     765              : */
     766              : 
     767              : extern "C" void M2Options_SetSaveTemps (bool value);
     768              : 
     769              : /*
     770              :    SetSaveTempsDir - turn on/off -save-temps and specify the directory.
     771              : */
     772              : 
     773              : extern "C" void M2Options_SetSaveTempsDir (void * arg);
     774              : 
     775              : /*
     776              :    GetSaveTempsDir - return SaveTempsDir or NIL if -save-temps was not used.
     777              : */
     778              : 
     779              : extern "C" DynamicStrings_String M2Options_GetSaveTempsDir (void);
     780              : 
     781              : /*
     782              :    SetDumpDir - Set the dump dir.
     783              : */
     784              : 
     785              : extern "C" void M2Options_SetDumpDir (void * arg);
     786              : 
     787              : /*
     788              :    GetDumpDir - return DumpDir or NIL.
     789              : */
     790              : 
     791              : extern "C" DynamicStrings_String M2Options_GetDumpDir (void);
     792              : 
     793              : /*
     794              :    SetGenModuleList - set the GenModuleList flag to true and pass
     795              :                       set GenModuleListFilename to filename.
     796              : */
     797              : 
     798              : extern "C" void M2Options_SetGenModuleList (bool value, void * filename);
     799              : 
     800              : /*
     801              :    GetGenModuleFilename - returns the filename set by SetGenModuleList.
     802              : */
     803              : 
     804              : extern "C" DynamicStrings_String M2Options_GetGenModuleFilename (void);
     805              : 
     806              : /*
     807              :    SetShared - sets the SharedFlag to value.
     808              : */
     809              : 
     810              : extern "C" void M2Options_SetShared (bool value);
     811              : 
     812              : /*
     813              :    SetUninitVariableChecking - sets the UninitVariableChecking and
     814              :                                UninitVariableConditionalChecking flags to value
     815              :                                depending upon arg string.  The arg string
     816              :                                can be: "all", "known,cond", "cond,known", "known"
     817              :                                or "cond".
     818              : */
     819              : 
     820              : extern "C" int M2Options_SetUninitVariableChecking (bool value, void * arg);
     821              : 
     822              : /*
     823              :    SetCaseEnumChecking - sets the CaseEnumChecking to value.
     824              : */
     825              : 
     826              : extern "C" void M2Options_SetCaseEnumChecking (bool value);
     827              : 
     828              : /*
     829              :    SetDebugBuiltins - sets the DebugBuiltins to value.
     830              : */
     831              : 
     832              : extern "C" void M2Options_SetDebugBuiltins (bool value);
     833              : 
     834              : /*
     835              :    SetIBMLongDouble - enable/disable LONGREAL to map onto the
     836              :                       IBM long double 128 bit data type.
     837              :                       (Only available on the ppc).
     838              : */
     839              : 
     840              : extern "C" void M2Options_SetIBMLongDouble (bool value);
     841              : 
     842              : /*
     843              :    GetIBMLongDouble - return the value of IBMLongDouble.
     844              : */
     845              : 
     846              : extern "C" bool M2Options_GetIBMLongDouble (void);
     847              : 
     848              : /*
     849              :    SetIEEELongDouble - enable/disable LONGREAL to map onto the
     850              :                        IEEE long double 128 bit data type.
     851              :                        (Only available on the ppc).
     852              : */
     853              : 
     854              : extern "C" void M2Options_SetIEEELongDouble (bool value);
     855              : 
     856              : /*
     857              :    GetIEEELongDouble - return the value of IEEELongDouble.
     858              : */
     859              : 
     860              : extern "C" bool M2Options_GetIEEELongDouble (void);
     861              : 
     862              : /*
     863              :    GetDumpDeclFilename - returns the DumpDeclFilename.
     864              : */
     865              : 
     866              : extern "C" DynamicStrings_String M2Options_GetDumpDeclFilename (void);
     867              : 
     868              : /*
     869              :    SetDumpDeclFilename -
     870              : */
     871              : 
     872              : extern "C" void M2Options_SetDumpDeclFilename (bool value, void * filename);
     873              : 
     874              : /*
     875              :    GetDumpQuadFilename - returns the DumpQuadFilename.
     876              : */
     877              : 
     878              : extern "C" DynamicStrings_String M2Options_GetDumpQuadFilename (void);
     879              : 
     880              : /*
     881              :    SetDumpQuadFilename -
     882              : */
     883              : 
     884              : extern "C" void M2Options_SetDumpQuadFilename (bool value, void * filename);
     885              : 
     886              : /*
     887              :    GetDumpGimpleFilename - returns the DumpGimpleFilename.
     888              : */
     889              : 
     890              : extern "C" DynamicStrings_String M2Options_GetDumpGimpleFilename (void);
     891              : 
     892              : /*
     893              :    SetDumpGimpleFilename - set DumpGimpleFilename to filename.
     894              : */
     895              : 
     896              : extern "C" void M2Options_SetDumpGimpleFilename (bool value, void * filename);
     897              : 
     898              : /*
     899              :    SetM2DumpFilter - sets the filter to a comma separated list of procedures
     900              :                      and modules.  Not to be confused with SetM2Dump below
     901              :                      which enables the class of data structures to be dumped.
     902              : */
     903              : 
     904              : extern "C" void M2Options_SetM2DumpFilter (bool value, void * filter);
     905              : 
     906              : /*
     907              :    GetM2DumpFilter - returns the dump filter.
     908              : */
     909              : 
     910              : extern "C" void * M2Options_GetM2DumpFilter (void);
     911              : 
     912              : /*
     913              :    SetM2Dump - sets the dump via a comma separated list: quad,decl,gimple,all.
     914              :                It returns TRUE if the comma separated list is valid.
     915              : */
     916              : 
     917              : extern "C" bool M2Options_SetM2Dump (bool value, void * filter);
     918              : 
     919              : /*
     920              :    GetDumpGimple - return TRUE if the dump gimple flag is set from SetM2Dump.
     921              : */
     922              : 
     923              : extern "C" bool M2Options_GetDumpGimple (void);
     924              : 
     925              : /*
     926              :    GetDumpQuad - return TRUE if the dump quad flag is set from SetM2Dump.
     927              : */
     928              : 
     929              : extern "C" bool M2Options_GetDumpQuad (void);
     930              : 
     931              : /*
     932              :    GetDumpDecl - return TRUE if the dump decl flag is set from SetM2Dump.
     933              : */
     934              : 
     935              : extern "C" bool M2Options_GetDumpDecl (void);
     936              : 
     937              : /*
     938              :    GetDebugTraceQuad - return DebugTraceQuad.
     939              : */
     940              : 
     941              : extern "C" bool M2Options_GetDebugTraceQuad (void);
     942              : 
     943              : /*
     944              :    GetDebugTraceTree - return DebugTraceTree.
     945              : */
     946              : 
     947              : extern "C" bool M2Options_GetDebugTraceTree (void);
     948              : 
     949              : /*
     950              :    GetDebugTraceToken - return DebugTraceToken.
     951              : */
     952              : 
     953              : extern "C" bool M2Options_GetDebugTraceToken (void);
     954              : 
     955              : /*
     956              :    GetDebugTraceLine - return DebugTraceLine.
     957              : */
     958              : 
     959              : extern "C" bool M2Options_GetDebugTraceLine (void);
     960              : 
     961              : /*
     962              :    GetDebugFunctionLineNumbers - return DebugFunctionLineNumbers.
     963              : */
     964              : 
     965              : extern "C" bool M2Options_GetDebugFunctionLineNumbers (void);
     966              : 
     967              : /*
     968              :    GetEnableForward - return EnableForward.
     969              : */
     970              : 
     971              : extern "C" bool M2Options_GetEnableForward (void);
     972              : 
     973              : /*
     974              :    SetEnableForward - set EnableForward to value.
     975              : */
     976              : 
     977              : extern "C" void M2Options_SetEnableForward (bool value);
     978              : 
     979              : /*
     980              :    SetFileOffsetBits - create SYSTEM.COFF_T as a signed integer of size bits.
     981              : */
     982              : 
     983              : extern "C" bool M2Options_SetFileOffsetBits (bool value, unsigned int bits);
     984              : 
     985              : /*
     986              :    GetFileOffsetBits - return the number of bits used to create SYSTEM.COFF_T.
     987              : */
     988              : 
     989              : extern "C" unsigned int M2Options_GetFileOffsetBits (void);
     990              : 
     991              : /*
     992              :    SetMemReport - set MemReport to value.
     993              : */
     994              : 
     995              : extern "C" void M2Options_SetMemReport (bool value);
     996              : 
     997              : /*
     998              :    SetTimeReport - set TimeReport to value.
     999              : */
    1000              : 
    1001              : extern "C" void M2Options_SetTimeReport (bool value);
    1002              : 
    1003              : /*
    1004              :    SetWideset - set the Wideset flag to value.
    1005              : */
    1006              : 
    1007              : extern "C" void M2Options_SetWideset (bool value);
    1008              : 
    1009              : /*
    1010              :    GetWideset - return the Wideset flag value.
    1011              : */
    1012              : 
    1013              : extern "C" bool M2Options_GetWideset (void);
    1014              : 
    1015              : /*
    1016              :    FinaliseOptions - once all options have been parsed we set any inferred
    1017              :                      values.
    1018              : */
    1019              : 
    1020              : extern "C" void M2Options_FinaliseOptions (void);
    1021              : 
    1022              : /*
    1023              :    errors1 -
    1024              : */
    1025              : 
    1026              : static void errors1 (const char *format_, unsigned int _format_high, DynamicStrings_String arg);
    1027              : 
    1028              : /*
    1029              :    AddWord - concats a word to sentence inserting a space if necessary.
    1030              :              sentence is returned.  sentence will be created if it is NIL.
    1031              : */
    1032              : 
    1033              : static DynamicStrings_String AddWord (DynamicStrings_String sentence, DynamicStrings_String word);
    1034              : 
    1035              : /*
    1036              :    QuoteTarget - quote the '$' character.
    1037              : */
    1038              : 
    1039              : static DynamicStrings_String QuoteTarget (DynamicStrings_String target);
    1040              : 
    1041              : /*
    1042              :    SetM2DebugTrace -
    1043              : */
    1044              : 
    1045              : static void SetM2DebugTrace (DynamicStrings_String word, bool value);
    1046              : 
    1047              : /*
    1048              :    InitializeLongDoubleFlags - initialize the long double related flags
    1049              :                                with default values given during gcc configure.
    1050              : */
    1051              : 
    1052              : static void InitializeLongDoubleFlags (void);
    1053              : 
    1054              : /*
    1055              :    MatchDump - enable/disable dump using value.  It returns TRUE if dump
    1056              :                is valid.
    1057              : */
    1058              : 
    1059              : static bool MatchDump (DynamicStrings_String dump, bool value);
    1060              : 
    1061              : 
    1062              : /*
    1063              :    errors1 -
    1064              : */
    1065              : 
    1066            0 : static void errors1 (const char *format_, unsigned int _format_high, DynamicStrings_String arg)
    1067              : {
    1068            0 :   DynamicStrings_String message;
    1069            0 :   void * cstr;
    1070            0 :   char format[_format_high+1];
    1071              : 
    1072              :   /* make a local copy of each unbounded array.  */
    1073            0 :   memcpy (format, format_, _format_high+1);
    1074              : 
    1075            0 :   message = FormatStrings_Sprintf1 (DynamicStrings_InitString ((const char *) format, _format_high), (const unsigned char *) &arg, (sizeof (arg)-1));
    1076            0 :   cstr = DynamicStrings_string (message);
    1077            0 :   m2misc_cerror (cstr);
    1078            0 :   libc_exit (1);
    1079            0 : }
    1080              : 
    1081              : 
    1082              : /*
    1083              :    AddWord - concats a word to sentence inserting a space if necessary.
    1084              :              sentence is returned.  sentence will be created if it is NIL.
    1085              : */
    1086              : 
    1087            0 : static DynamicStrings_String AddWord (DynamicStrings_String sentence, DynamicStrings_String word)
    1088              : {
    1089            0 :   if (word != NULL)
    1090              :     {
    1091              :       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
    1092            0 :       if (sentence == NULL)
    1093              :         {
    1094            0 :           sentence = DynamicStrings_Dup (word);
    1095              :         }
    1096              :       else
    1097              :         {
    1098            0 :           sentence = DynamicStrings_ConCatChar (sentence, ' ');
    1099            0 :           sentence = DynamicStrings_ConCat (sentence, word);
    1100              :         }
    1101              :     }
    1102            0 :   return sentence;
    1103              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1104              :   __builtin_unreachable ();
    1105              : }
    1106              : 
    1107              : 
    1108              : /*
    1109              :    QuoteTarget - quote the '$' character.
    1110              : */
    1111              : 
    1112            0 : static DynamicStrings_String QuoteTarget (DynamicStrings_String target)
    1113              : {
    1114            0 :   DynamicStrings_String quoted;
    1115            0 :   unsigned int i;
    1116            0 :   unsigned int n;
    1117              : 
    1118            0 :   quoted = DynamicStrings_InitString ((const char *) "", 0);
    1119            0 :   i = 0;
    1120            0 :   n = DynamicStrings_Length (target);
    1121            0 :   while (i < n)
    1122              :     {
    1123            0 :       switch (DynamicStrings_char (target, static_cast<int> (i)))
    1124              :         {
    1125            0 :           case '$':
    1126            0 :             quoted = DynamicStrings_ConCat (quoted, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "$$", 2)));
    1127            0 :             break;
    1128              : 
    1129              : 
    1130            0 :           default:
    1131            0 :             quoted = DynamicStrings_ConCatChar (quoted, DynamicStrings_char (target, static_cast<int> (i)));
    1132            0 :             break;
    1133              :         }
    1134            0 :       i += 1;
    1135              :     }
    1136            0 :   return quoted;
    1137              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1138              :   __builtin_unreachable ();
    1139              : }
    1140              : 
    1141              : 
    1142              : /*
    1143              :    SetM2DebugTrace -
    1144              : */
    1145              : 
    1146            0 : static void SetM2DebugTrace (DynamicStrings_String word, bool value)
    1147              : {
    1148            0 :   if (DynamicStrings_EqualArray (word, (const char *) "all", 3))
    1149              :     {
    1150              :       /* DebugTraceTree := value ;  */
    1151            0 :       DebugTraceQuad = value;
    1152            0 :       DebugTraceToken = value;
    1153            0 :       DebugTraceLine = value;
    1154              :     }
    1155            0 :   else if (DynamicStrings_EqualArray (word, (const char *) "quad", 4))
    1156              :     {
    1157              :       /* avoid dangling else.  */
    1158            0 :       DebugTraceQuad = value;
    1159              :     }
    1160            0 :   else if (DynamicStrings_EqualArray (word, (const char *) "token", 5))
    1161              :     {
    1162              :       /* avoid dangling else.  */
    1163            0 :       DebugTraceToken = value;
    1164              :     }
    1165            0 :   else if (DynamicStrings_EqualArray (word, (const char *) "line", 4))
    1166              :     {
    1167              :       /* avoid dangling else.  */
    1168            0 :       DebugTraceLine = value;
    1169              :     }
    1170              :   else
    1171              :     {
    1172              :       /* avoid dangling else.  */
    1173            0 :       errors1 ((const char *) "unrecognized filter %s seen in -fm2-debug-trace= option\\n", 57, word);
    1174              :     }
    1175            0 : }
    1176              : 
    1177              : 
    1178              : /*
    1179              :    InitializeLongDoubleFlags - initialize the long double related flags
    1180              :                                with default values given during gcc configure.
    1181              : */
    1182              : 
    1183        14952 : static void InitializeLongDoubleFlags (void)
    1184              : {
    1185        14952 :   IBMLongDouble = false;
    1186        14952 :   IEEELongDouble = false;
    1187        14952 :   switch (m2configure_TargetIEEEQuadDefault ())
    1188              :     {
    1189              :       case -1:
    1190              :         break;
    1191              : 
    1192            0 :       case 0:
    1193            0 :         IBMLongDouble = true;
    1194            0 :         break;
    1195              : 
    1196            0 :       case 1:
    1197            0 :         IEEELongDouble = true;
    1198            0 :         break;
    1199              : 
    1200              : 
    1201            0 :       default:
    1202            0 :         M2Error_InternalError ((const char *) "unexpected value returned from TargetIEEEQuadDefault ()", 55);
    1203        14952 :         break;
    1204              :     }
    1205        14952 : }
    1206              : 
    1207              : 
    1208              : /*
    1209              :    MatchDump - enable/disable dump using value.  It returns TRUE if dump
    1210              :                is valid.
    1211              : */
    1212              : 
    1213            0 : static bool MatchDump (DynamicStrings_String dump, bool value)
    1214              : {
    1215            0 :   if (DynamicStrings_EqualArray (dump, (const char *) "all", 3))
    1216              :     {
    1217            0 :       DumpDecl = value;
    1218            0 :       DumpQuad = value;
    1219            0 :       DumpGimple = value;
    1220            0 :       return true;
    1221              :     }
    1222            0 :   else if (DynamicStrings_EqualArray (dump, (const char *) "decl", 4))
    1223              :     {
    1224              :       /* avoid dangling else.  */
    1225            0 :       DumpDecl = value;
    1226            0 :       return true;
    1227              :     }
    1228            0 :   else if (DynamicStrings_EqualArray (dump, (const char *) "gimple", 6))
    1229              :     {
    1230              :       /* avoid dangling else.  */
    1231            0 :       DumpGimple = value;
    1232            0 :       return true;
    1233              :     }
    1234            0 :   else if (DynamicStrings_EqualArray (dump, (const char *) "quad", 4))
    1235              :     {
    1236              :       /* avoid dangling else.  */
    1237            0 :       DumpQuad = value;
    1238            0 :       return true;
    1239              :     }
    1240              :   return false;
    1241              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1242              :   __builtin_unreachable ();
    1243              : }
    1244              : 
    1245              : 
    1246              : /*
    1247              :    SetM - set the MFlag.
    1248              : */
    1249              : 
    1250            0 : extern "C" void M2Options_SetM (bool value)
    1251              : {
    1252            0 :   MFlag = value;
    1253            0 : }
    1254              : 
    1255              : 
    1256              : /*
    1257              :    GetM - set the MFlag.
    1258              : */
    1259              : 
    1260        32610 : extern "C" bool M2Options_GetM (void)
    1261              : {
    1262        32610 :   return MFlag;
    1263              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1264              :   __builtin_unreachable ();
    1265              : }
    1266              : 
    1267              : 
    1268              : /*
    1269              :    SetMM - set the MMFlag.
    1270              : */
    1271              : 
    1272            0 : extern "C" void M2Options_SetMM (bool value)
    1273              : {
    1274            0 :   MMFlag = value;
    1275            0 : }
    1276              : 
    1277              : 
    1278              : /*
    1279              :    GetMM - set the MMFlag.
    1280              : */
    1281              : 
    1282        32610 : extern "C" bool M2Options_GetMM (void)
    1283              : {
    1284        32610 :   return MMFlag;
    1285              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1286              :   __builtin_unreachable ();
    1287              : }
    1288              : 
    1289              : 
    1290              : /*
    1291              :    SetMF - assigns MFarg to the filename from arg.
    1292              : */
    1293              : 
    1294            0 : extern "C" void M2Options_SetMF (void * arg)
    1295              : {
    1296            0 :   MFarg = DynamicStrings_KillString (MFarg);
    1297            0 :   MFarg = DynamicStrings_InitStringCharStar (arg);
    1298            0 : }
    1299              : 
    1300              : 
    1301              : /*
    1302              :    GetMF - returns MFarg or NIL if never set.
    1303              : */
    1304              : 
    1305        14952 : extern "C" void * M2Options_GetMF (void)
    1306              : {
    1307        14952 :   return DynamicStrings_string (MFarg);
    1308              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1309              :   __builtin_unreachable ();
    1310              : }
    1311              : 
    1312              : 
    1313              : /*
    1314              :    SetM2Prefix - assign arg to M2Prefix.
    1315              : */
    1316              : 
    1317          624 : extern "C" void M2Options_SetM2Prefix (void * arg)
    1318              : {
    1319          624 :   M2Prefix = DynamicStrings_KillString (M2Prefix);
    1320          624 :   M2Prefix = DynamicStrings_InitStringCharStar (arg);
    1321          624 : }
    1322              : 
    1323              : 
    1324              : /*
    1325              :    GetM2Prefix - return M2Prefix as a C string.
    1326              : */
    1327              : 
    1328        14941 : extern "C" void * M2Options_GetM2Prefix (void)
    1329              : {
    1330        14941 :   return DynamicStrings_string (M2Prefix);
    1331              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1332              :   __builtin_unreachable ();
    1333              : }
    1334              : 
    1335              : 
    1336              : /*
    1337              :    SetM2PathName - assign arg to M2PathName.
    1338              : */
    1339              : 
    1340       296190 : extern "C" void M2Options_SetM2PathName (void * arg)
    1341              : {
    1342       296190 :   M2PathName = DynamicStrings_KillString (M2PathName);
    1343       296190 :   M2PathName = DynamicStrings_InitStringCharStar (arg);
    1344       296190 : }
    1345              : 
    1346              : 
    1347              : /*
    1348              :    GetM2PathName - return M2PathName as a C string.
    1349              : */
    1350              : 
    1351       344154 : extern "C" void * M2Options_GetM2PathName (void)
    1352              : {
    1353       344154 :   return DynamicStrings_string (M2PathName);
    1354              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1355              :   __builtin_unreachable ();
    1356              : }
    1357              : 
    1358              : 
    1359              : /*
    1360              :    SetPPOnly - set the PPonly (preprocess only) to value.
    1361              : */
    1362              : 
    1363            0 : extern "C" void M2Options_SetPPOnly (bool value)
    1364              : {
    1365            0 :   M2Options_PPonly = value;
    1366            0 : }
    1367              : 
    1368              : 
    1369              : /*
    1370              :    GetPPOnly - get the PPonly (preprocess only).
    1371              : */
    1372              : 
    1373        58274 : extern "C" bool M2Options_GetPPOnly (void)
    1374              : {
    1375        58274 :   return M2Options_PPonly;
    1376              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1377              :   __builtin_unreachable ();
    1378              : }
    1379              : 
    1380              : 
    1381              : /*
    1382              :    Setc - set the cflag (compile only flag -c) to value.
    1383              : */
    1384              : 
    1385        12235 : extern "C" void M2Options_Setc (bool value)
    1386              : {
    1387        12235 :   M2Options_cflag = value;
    1388        12235 : }
    1389              : 
    1390              : 
    1391              : /*
    1392              :    Getc - get the cflag (compile only flag -c).
    1393              : */
    1394              : 
    1395            0 : extern "C" bool M2Options_Getc (void)
    1396              : {
    1397            0 :   return M2Options_cflag;
    1398              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1399              :   __builtin_unreachable ();
    1400              : }
    1401              : 
    1402              : 
    1403              : /*
    1404              :    SetB - assigns Barg to arg.
    1405              : */
    1406              : 
    1407        14952 : extern "C" void M2Options_SetB (void * arg)
    1408              : {
    1409        14952 :   Barg = DynamicStrings_KillString (Barg);
    1410        14952 :   Barg = DynamicStrings_InitStringCharStar (arg);
    1411        14952 : }
    1412              : 
    1413              : 
    1414              : /*
    1415              :    GetB - returns Barg value as a C string or NIL if it was never set.
    1416              : */
    1417              : 
    1418         2868 : extern "C" void * M2Options_GetB (void)
    1419              : {
    1420         2868 :   return DynamicStrings_string (Barg);
    1421              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1422              :   __builtin_unreachable ();
    1423              : }
    1424              : 
    1425              : 
    1426              : /*
    1427              :    SetMD - set the MDFlag to value.
    1428              : */
    1429              : 
    1430            0 : extern "C" void M2Options_SetMD (bool value)
    1431              : {
    1432            0 :   MDFlag = value;
    1433            0 : }
    1434              : 
    1435              : 
    1436              : /*
    1437              :    GetMD - return the MDFlag.
    1438              : */
    1439              : 
    1440          528 : extern "C" bool M2Options_GetMD (void)
    1441              : {
    1442          528 :   return MDFlag;
    1443              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1444              :   __builtin_unreachable ();
    1445              : }
    1446              : 
    1447              : 
    1448              : /*
    1449              :    SetMMD - set the MMDFlag to value.
    1450              : */
    1451              : 
    1452            0 : extern "C" void M2Options_SetMMD (bool value)
    1453              : {
    1454            0 :   MMDFlag = value;
    1455            0 : }
    1456              : 
    1457              : 
    1458              : /*
    1459              :    GetMMD - return the MMDFlag.
    1460              : */
    1461              : 
    1462          528 : extern "C" bool M2Options_GetMMD (void)
    1463              : {
    1464          528 :   return MMDFlag;
    1465              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1466              :   __builtin_unreachable ();
    1467              : }
    1468              : 
    1469              : 
    1470              : /*
    1471              :    SetMQ - adds a quoted target arg to the DepTarget sentence.
    1472              : */
    1473              : 
    1474            0 : extern "C" void M2Options_SetMQ (void * arg)
    1475              : {
    1476            0 :   DepTarget = AddWord (DepTarget, QuoteTarget (DynamicStrings_InitStringCharStar (arg)));
    1477            0 :   MQFlag = AddWord (MQFlag, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "-MQ", 3)));
    1478            0 :   MQFlag = AddWord (MQFlag, DynamicStrings_Mark (DynamicStrings_InitStringCharStar (arg)));
    1479            0 : }
    1480              : 
    1481              : 
    1482              : /*
    1483              :    GetMQ - returns a C string containing all the -MQ arg values.
    1484              : */
    1485              : 
    1486            0 : extern "C" void * M2Options_GetMQ (void)
    1487              : {
    1488            0 :   return DynamicStrings_string (MQFlag);
    1489              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1490              :   __builtin_unreachable ();
    1491              : }
    1492              : 
    1493              : 
    1494              : /*
    1495              :    SetMT - adds a target arg to the DepTarget sentence.
    1496              : */
    1497              : 
    1498            0 : extern "C" void M2Options_SetMT (void * arg)
    1499              : {
    1500            0 :   DepTarget = AddWord (DepTarget, DynamicStrings_InitStringCharStar (arg));
    1501            0 :   MTFlag = AddWord (MTFlag, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "-MT", 3)));
    1502            0 :   MTFlag = AddWord (MTFlag, DynamicStrings_Mark (DynamicStrings_InitStringCharStar (arg)));
    1503            0 : }
    1504              : 
    1505              : 
    1506              : /*
    1507              :    GetMT - returns a C string containing all the -MT arg values.
    1508              : */
    1509              : 
    1510            0 : extern "C" void * M2Options_GetMT (void)
    1511              : {
    1512            0 :   return DynamicStrings_string (MTFlag);
    1513              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1514              :   __builtin_unreachable ();
    1515              : }
    1516              : 
    1517              : 
    1518              : /*
    1519              :    GetDepTarget - returns the DepTarget as a C string.
    1520              : */
    1521              : 
    1522            0 : extern "C" void * M2Options_GetDepTarget (void)
    1523              : {
    1524            0 :   return DynamicStrings_string (DepTarget);
    1525              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1526              :   __builtin_unreachable ();
    1527              : }
    1528              : 
    1529              : 
    1530              : /*
    1531              :    SetMP - set the MPflag to value.
    1532              : */
    1533              : 
    1534            0 : extern "C" void M2Options_SetMP (bool value)
    1535              : {
    1536            0 :   MPFlag = value;
    1537            0 : }
    1538              : 
    1539              : 
    1540              : /*
    1541              :    GetMP - get the MPflag.
    1542              : */
    1543              : 
    1544            0 : extern "C" bool M2Options_GetMP (void)
    1545              : {
    1546            0 :   return MPFlag;
    1547              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1548              :   __builtin_unreachable ();
    1549              : }
    1550              : 
    1551              : 
    1552              : /*
    1553              :    SetObj - assigns CmdLineObj to the filename from arg.
    1554              : */
    1555              : 
    1556        14952 : extern "C" void M2Options_SetObj (void * arg)
    1557              : {
    1558        14952 :   CmdLineObj = DynamicStrings_KillString (CmdLineObj);
    1559        14952 :   CmdLineObj = DynamicStrings_InitStringCharStar (arg);
    1560        14952 : }
    1561              : 
    1562              : 
    1563              : /*
    1564              :    GetObj - returns CmdLineObj filename as a c-string or NIL if it was never set.
    1565              : */
    1566              : 
    1567            0 : extern "C" void * M2Options_GetObj (void)
    1568              : {
    1569            0 :   return DynamicStrings_string (CmdLineObj);
    1570              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1571              :   __builtin_unreachable ();
    1572              : }
    1573              : 
    1574              : 
    1575              : /*
    1576              :    SetCpp - enables the source to be preprocessed and enables the
    1577              :             recognition of C preprocessor line directives.
    1578              : */
    1579              : 
    1580          528 : extern "C" bool M2Options_SetCpp (bool value)
    1581              : {
    1582          528 :   M2Options_CPreProcessor = value;
    1583          528 :   M2Options_LineDirectives = value;
    1584          528 :   return true;
    1585              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1586              :   __builtin_unreachable ();
    1587              : }
    1588              : 
    1589              : 
    1590              : /*
    1591              :    GetCpp - returns TRUE if the C preprocessor was used.
    1592              : */
    1593              : 
    1594     24696534 : extern "C" bool M2Options_GetCpp (void)
    1595              : {
    1596     24696534 :   return M2Options_CPreProcessor;
    1597              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1598              :   __builtin_unreachable ();
    1599              : }
    1600              : 
    1601              : 
    1602              : /*
    1603              :    GetLineDirectives - returns TRUE if line directives are allowed.
    1604              : */
    1605              : 
    1606        32284 : extern "C" bool M2Options_GetLineDirectives (void)
    1607              : {
    1608        32284 :   return M2Options_LineDirectives;
    1609              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1610              :   __builtin_unreachable ();
    1611              : }
    1612              : 
    1613              : 
    1614              : /*
    1615              :    SetScaffoldDynamic - set the -fscaffold-dynamic flag.
    1616              : */
    1617              : 
    1618        14952 : extern "C" void M2Options_SetScaffoldDynamic (bool value)
    1619              : {
    1620        14952 :   M2Options_ScaffoldDynamic = value;
    1621        14952 :   if (M2Options_ScaffoldDynamic)
    1622              :     {
    1623        14908 :       M2Options_ScaffoldStatic = false;
    1624              :     }
    1625        14952 : }
    1626              : 
    1627              : 
    1628              : /*
    1629              :    SetScaffoldStatic - set the -fscaffold-static flag.
    1630              : */
    1631              : 
    1632           22 : extern "C" void M2Options_SetScaffoldStatic (bool value)
    1633              : {
    1634           22 :   M2Options_ScaffoldStatic = value;
    1635           22 :   if (M2Options_ScaffoldStatic)
    1636              :     {
    1637            0 :       M2Options_ScaffoldDynamic = false;
    1638              :     }
    1639           22 : }
    1640              : 
    1641              : 
    1642              : /*
    1643              :    GetScaffoldDynamic - get the -fscaffold-dynamic flag.
    1644              : */
    1645              : 
    1646            0 : extern "C" bool M2Options_GetScaffoldDynamic (void)
    1647              : {
    1648            0 :   return M2Options_ScaffoldDynamic;
    1649              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1650              :   __builtin_unreachable ();
    1651              : }
    1652              : 
    1653              : 
    1654              : /*
    1655              :    GetScaffoldStatic - get the -fscaffold-static flag.
    1656              : */
    1657              : 
    1658            0 : extern "C" bool M2Options_GetScaffoldStatic (void)
    1659              : {
    1660            0 :   return M2Options_ScaffoldStatic;
    1661              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1662              :   __builtin_unreachable ();
    1663              : }
    1664              : 
    1665              : 
    1666              : /*
    1667              :    SetScaffoldMain - set the -fscaffold-main flag.
    1668              : */
    1669              : 
    1670         2720 : extern "C" void M2Options_SetScaffoldMain (bool value)
    1671              : {
    1672         2720 :   M2Options_ScaffoldMain = value;
    1673         2720 : }
    1674              : 
    1675              : 
    1676              : /*
    1677              :    SetRuntimeModuleOverride - set the override sequence used for module
    1678              :                               initialization and finialization.
    1679              : */
    1680              : 
    1681            0 : extern "C" void M2Options_SetRuntimeModuleOverride (void * override)
    1682              : {
    1683            0 :   RuntimeModuleOverride = DynamicStrings_KillString (RuntimeModuleOverride);
    1684            0 :   RuntimeModuleOverride = DynamicStrings_InitStringCharStar (override);
    1685            0 : }
    1686              : 
    1687              : 
    1688              : /*
    1689              :    GetRuntimeModuleOverride - return a string containing any user override
    1690              :                               or the default module initialization override
    1691              :                               sequence.
    1692              : */
    1693              : 
    1694         2687 : extern "C" void * M2Options_GetRuntimeModuleOverride (void)
    1695              : {
    1696         2687 :   return DynamicStrings_string (RuntimeModuleOverride);
    1697              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1698              :   __builtin_unreachable ();
    1699              : }
    1700              : 
    1701              : 
    1702              : /*
    1703              :    SetUselist - set the uselist flag to value and remember the filename.
    1704              : */
    1705              : 
    1706            0 : extern "C" void M2Options_SetUselist (bool value, void * filename)
    1707              : {
    1708            0 :   UselistFlag = value;
    1709            0 :   UselistFilename = DynamicStrings_KillString (UselistFilename);
    1710            0 :   if (filename != NULL)
    1711              :     {
    1712            0 :       UselistFilename = DynamicStrings_InitStringCharStar (filename);
    1713              :     }
    1714            0 : }
    1715              : 
    1716              : 
    1717              : /*
    1718              :    GetUselist - return the uselist flag.
    1719              : */
    1720              : 
    1721        14577 : extern "C" bool M2Options_GetUselist (void)
    1722              : {
    1723        14577 :   return UselistFlag;
    1724              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1725              :   __builtin_unreachable ();
    1726              : }
    1727              : 
    1728              : 
    1729              : /*
    1730              :    GetUselistFilename - return the uselist filename as a String.
    1731              : */
    1732              : 
    1733            0 : extern "C" DynamicStrings_String M2Options_GetUselistFilename (void)
    1734              : {
    1735            0 :   return UselistFilename;
    1736              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1737              :   __builtin_unreachable ();
    1738              : }
    1739              : 
    1740              : 
    1741              : /*
    1742              :    SetWholeProgram - sets the WholeProgram flag (-fwhole-program).
    1743              : */
    1744              : 
    1745           24 : extern "C" void M2Options_SetWholeProgram (bool value)
    1746              : {
    1747           24 :   M2Options_WholeProgram = value;
    1748           24 : }
    1749              : 
    1750              : 
    1751              : /*
    1752              :    SetAutoInit - -fauto-init turns on automatic initialization of pointers to NIL.
    1753              :                   TRUE is returned.
    1754              : */
    1755              : 
    1756           12 : extern "C" bool M2Options_SetAutoInit (bool value)
    1757              : {
    1758           12 :   M2Options_AutoInit = value;
    1759           12 :   return true;
    1760              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1761              :   __builtin_unreachable ();
    1762              : }
    1763              : 
    1764              : 
    1765              : /*
    1766              :    SetReturnCheck -
    1767              : */
    1768              : 
    1769            0 : extern "C" bool M2Options_SetReturnCheck (bool value)
    1770              : {
    1771            0 :   M2Options_ReturnChecking = value;
    1772            0 :   return true;
    1773              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1774              :   __builtin_unreachable ();
    1775              : }
    1776              : 
    1777              : 
    1778              : /*
    1779              :    SetNilCheck -
    1780              : */
    1781              : 
    1782            0 : extern "C" bool M2Options_SetNilCheck (bool value)
    1783              : {
    1784            0 :   M2Options_NilChecking = value;
    1785            0 :   return true;
    1786              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1787              :   __builtin_unreachable ();
    1788              : }
    1789              : 
    1790              : 
    1791              : /*
    1792              :    SetCaseCheck - set else case checking to, value.
    1793              : */
    1794              : 
    1795          616 : extern "C" bool M2Options_SetCaseCheck (bool value)
    1796              : {
    1797          616 :   M2Options_CaseElseChecking = value;
    1798          616 :   return true;
    1799              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1800              :   __builtin_unreachable ();
    1801              : }
    1802              : 
    1803              : 
    1804              : /*
    1805              :    SetCheckAll - set all runtime checking to, value.
    1806              : */
    1807              : 
    1808         1927 : extern "C" bool M2Options_SetCheckAll (bool value)
    1809              : {
    1810         1927 :   M2Options_NilChecking = value;
    1811         1927 :   M2Options_WholeDivChecking = value;
    1812         1927 :   M2Options_IndexChecking = value;
    1813         1927 :   M2Options_RangeChecking = value;
    1814         1927 :   M2Options_ReturnChecking = value;
    1815         1927 :   M2Options_NilChecking = value;
    1816         1927 :   M2Options_CaseElseChecking = value;
    1817         1927 :   M2Options_FloatValueChecking = value;
    1818         1927 :   M2Options_WholeValueChecking = value;
    1819         1927 :   return true;
    1820              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1821              :   __builtin_unreachable ();
    1822              : }
    1823              : 
    1824              : 
    1825              : /*
    1826              :    SetVerboseUnbounded - sets the VerboseUnbounded flag to, value.
    1827              : */
    1828              : 
    1829            0 : extern "C" bool M2Options_SetVerboseUnbounded (bool value)
    1830              : {
    1831            0 :   M2Options_VerboseUnbounded = value;
    1832            0 :   return true;
    1833              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1834              :   __builtin_unreachable ();
    1835              : }
    1836              : 
    1837              : 
    1838              : /*
    1839              :    SetQuiet - sets the quiet flag to, value.
    1840              : */
    1841              : 
    1842        15480 : extern "C" bool M2Options_SetQuiet (bool value)
    1843              : {
    1844        15480 :   M2Options_Quiet = value;
    1845        15480 :   return true;
    1846              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1847              :   __builtin_unreachable ();
    1848              : }
    1849              : 
    1850              : 
    1851              : /*
    1852              :    SetCC1Quiet - sets the cc1quiet flag to, value.
    1853              : */
    1854              : 
    1855        14952 : extern "C" void M2Options_SetCC1Quiet (bool value)
    1856              : {
    1857        14952 :   CC1Quiet = value;
    1858        14952 : }
    1859              : 
    1860              : 
    1861              : /*
    1862              :    SetM2g - set GenerateStatementNote to value and return value.
    1863              :             Corresponds to the -fm2-g flag.
    1864              : */
    1865              : 
    1866          520 : extern "C" bool M2Options_SetM2g (bool value)
    1867              : {
    1868          520 :   M2Options_GenerateStatementNote = value;
    1869          520 :   return M2Options_GenerateStatementNote;
    1870              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1871              :   __builtin_unreachable ();
    1872              : }
    1873              : 
    1874              : 
    1875              : /*
    1876              :    GetM2g - returns TRUE if the -fm2-g flags was used.
    1877              : */
    1878              : 
    1879       396649 : extern "C" bool M2Options_GetM2g (void)
    1880              : {
    1881       396649 :   return M2Options_GenerateStatementNote;
    1882              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1883              :   __builtin_unreachable ();
    1884              : }
    1885              : 
    1886              : 
    1887              : /*
    1888              :    SetLowerCaseKeywords - set the lower case keyword flag and return the result.
    1889              : */
    1890              : 
    1891            0 : extern "C" bool M2Options_SetLowerCaseKeywords (bool value)
    1892              : {
    1893            0 :   M2Options_LowerCaseKeywords = value;
    1894            0 :   return M2Options_LowerCaseKeywords;
    1895              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1896              :   __builtin_unreachable ();
    1897              : }
    1898              : 
    1899              : 
    1900              : /*
    1901              :    SetUnboundedByReference -
    1902              : */
    1903              : 
    1904            0 : extern "C" bool M2Options_SetUnboundedByReference (bool value)
    1905              : {
    1906            0 :   M2Options_UnboundedByReference = value;
    1907            0 :   return true;
    1908              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    1909              :   __builtin_unreachable ();
    1910              : }
    1911              : 
    1912              : 
    1913              : /*
    1914              :    SetSearchPath -
    1915              : */
    1916              : 
    1917       245780 : extern "C" void M2Options_SetSearchPath (void * arg)
    1918              : {
    1919       245780 :   DynamicStrings_String s;
    1920              : 
    1921       245780 :   s = DynamicStrings_InitStringCharStar (arg);
    1922       245780 :   PathName_AddInclude (M2PathName, s);
    1923       245780 :   if (Debugging)
    1924              :     {
    1925              :       PathName_DumpPathName ((const char *) "path name entries: ", 19);
    1926              :     }
    1927       245780 :   s = DynamicStrings_KillString (s);
    1928       245780 : }
    1929              : 
    1930              : 
    1931              : /*
    1932              :    SetISO -
    1933              : */
    1934              : 
    1935         4301 : extern "C" void M2Options_SetISO (bool value)
    1936              : {
    1937         4301 :   M2Options_Iso = value;
    1938         4301 :   M2Options_Pim = ! value;
    1939         4301 :   M2Options_Pim2 = ! value;
    1940         4301 : }
    1941              : 
    1942              : 
    1943              : /*
    1944              :    SetPIM -
    1945              : */
    1946              : 
    1947        10158 : extern "C" void M2Options_SetPIM (bool value)
    1948              : {
    1949        10158 :   M2Options_Pim = value;
    1950        10158 :   M2Options_Iso = ! value;
    1951        10158 : }
    1952              : 
    1953              : 
    1954              : /*
    1955              :    SetPIM2 -
    1956              : */
    1957              : 
    1958           86 : extern "C" void M2Options_SetPIM2 (bool value)
    1959              : {
    1960           86 :   M2Options_Pim = value;
    1961           86 :   M2Options_Pim2 = value;
    1962           86 :   M2Options_Iso = ! value;
    1963           86 :   if (value)
    1964              :     {
    1965              :       /* Pim4 is the default, turn it off.  */
    1966           86 :       M2Options_Pim4 = false;
    1967              :     }
    1968           86 : }
    1969              : 
    1970              : 
    1971              : /*
    1972              :    SetPIM3 -
    1973              : */
    1974              : 
    1975           12 : extern "C" void M2Options_SetPIM3 (bool value)
    1976              : {
    1977           12 :   M2Options_Pim = value;
    1978           12 :   M2Options_Pim3 = value;
    1979           12 :   M2Options_Iso = ! value;
    1980           12 :   if (value)
    1981              :     {
    1982              :       /* Pim4 is the default, turn it off.  */
    1983           12 :       M2Options_Pim4 = false;
    1984              :     }
    1985           12 : }
    1986              : 
    1987              : 
    1988              : /*
    1989              :    SetPIM4 -
    1990              : */
    1991              : 
    1992           75 : extern "C" void M2Options_SetPIM4 (bool value)
    1993              : {
    1994           75 :   M2Options_Pim = value;
    1995           75 :   M2Options_Pim4 = value;
    1996           75 :   M2Options_Iso = ! value;
    1997           75 : }
    1998              : 
    1999              : 
    2000              : /*
    2001              :    SetPositiveModFloor - sets the positive mod floor option.
    2002              : */
    2003              : 
    2004            0 : extern "C" void M2Options_SetPositiveModFloor (bool value)
    2005              : {
    2006            0 :   M2Options_PositiveModFloorDiv = value;
    2007            0 : }
    2008              : 
    2009              : 
    2010              : /*
    2011              :    SetWholeDiv - sets the whole division flag.
    2012              : */
    2013              : 
    2014            0 : extern "C" void M2Options_SetWholeDiv (bool value)
    2015              : {
    2016            0 :   M2Options_WholeDivChecking = value;
    2017            0 : }
    2018              : 
    2019              : 
    2020              : /*
    2021              :    SetIndex - sets the runtime array index checking flag.
    2022              : */
    2023              : 
    2024            0 : extern "C" void M2Options_SetIndex (bool value)
    2025              : {
    2026            0 :   M2Options_IndexChecking = value;
    2027            0 : }
    2028              : 
    2029              : 
    2030              : /*
    2031              :    SetRange -  sets the runtime range checking flag.
    2032              : */
    2033              : 
    2034            6 : extern "C" void M2Options_SetRange (bool value)
    2035              : {
    2036            6 :   M2Options_RangeChecking = value;
    2037            6 : }
    2038              : 
    2039              : 
    2040              : /*
    2041              :    SetExceptions - sets the enable runtime exceptions flag.
    2042              : */
    2043              : 
    2044           18 : extern "C" void M2Options_SetExceptions (bool value)
    2045              : {
    2046           18 :   M2Options_Exceptions = value;
    2047           18 : }
    2048              : 
    2049              : 
    2050              : /*
    2051              :    SetStyle -
    2052              : */
    2053              : 
    2054            1 : extern "C" void M2Options_SetStyle (bool value)
    2055              : {
    2056            1 :   M2Options_StyleChecking = value;
    2057            1 : }
    2058              : 
    2059              : 
    2060              : /*
    2061              :    SetPedantic -
    2062              : */
    2063              : 
    2064          366 : extern "C" void M2Options_SetPedantic (bool value)
    2065              : {
    2066          366 :   M2Options_Pedantic = value;
    2067          366 : }
    2068              : 
    2069              : 
    2070              : /*
    2071              :    SetPedanticParamNames - sets the pedantic parameter name flag.
    2072              : */
    2073              : 
    2074           12 : extern "C" void M2Options_SetPedanticParamNames (bool value)
    2075              : {
    2076           12 :   M2Options_PedanticParamNames = value;
    2077           12 : }
    2078              : 
    2079              : 
    2080              : /*
    2081              :    SetPedanticCast - sets the pedantic cast flag.
    2082              : */
    2083              : 
    2084            0 : extern "C" void M2Options_SetPedanticCast (bool value)
    2085              : {
    2086            0 :   M2Options_PedanticCast = value;
    2087            0 : }
    2088              : 
    2089              : 
    2090              : /*
    2091              :    SetExtendedOpaque - sets the ExtendedOpaque flag.
    2092              : */
    2093              : 
    2094          328 : extern "C" void M2Options_SetExtendedOpaque (bool value)
    2095              : {
    2096          328 :   M2Options_ExtendedOpaque = value;
    2097          328 : }
    2098              : 
    2099              : 
    2100              : /*
    2101              :    SetXCode - sets the xcode flag.
    2102              : */
    2103              : 
    2104            0 : extern "C" void M2Options_SetXCode (bool value)
    2105              : {
    2106            0 :   M2Options_Xcode = value;
    2107            0 : }
    2108              : 
    2109              : 
    2110              : /*
    2111              :    SetCompilerDebugging - turn on internal compiler debugging.
    2112              :                           Enabled via the command line option -fd.
    2113              : */
    2114              : 
    2115            0 : extern "C" void M2Options_SetCompilerDebugging (bool value)
    2116              : {
    2117            0 :   M2Options_CompilerDebugging = value;
    2118            0 : }
    2119              : 
    2120              : 
    2121              : /*
    2122              :    SetQuadDebugging - display the quadruples (internal debugging).
    2123              : */
    2124              : 
    2125            0 : extern "C" void M2Options_SetQuadDebugging (bool value)
    2126              : {
    2127            0 :   DumpQuad = value;
    2128            0 :   DumpQuadFilename = DynamicStrings_KillString (DumpQuadFilename);
    2129            0 :   DumpQuadFilename = DynamicStrings_InitString ((const char *) "-", 1);
    2130            0 : }
    2131              : 
    2132              : 
    2133              : /*
    2134              :    SetM2DebugTraceFilter - set internal debug flags.  The flags should be
    2135              :                            specified as a comma separated list.  The full
    2136              :                            list allowed is quad,line,token,all.
    2137              : */
    2138              : 
    2139            0 : extern "C" void M2Options_SetM2DebugTraceFilter (bool value, void * filter)
    2140              : {
    2141            0 :   DynamicStrings_String word;
    2142            0 :   DynamicStrings_String full;
    2143            0 :   int start;
    2144            0 :   int i;
    2145              : 
    2146            0 :   full = DynamicStrings_InitStringCharStar (filter);
    2147            0 :   start = 0;
    2148            0 :   do {
    2149            0 :     i = DynamicStrings_Index (full, ',', static_cast<unsigned int> (start));
    2150            0 :     if (i == -1)
    2151              :       {
    2152            0 :         word = DynamicStrings_Slice (full, start, 0);
    2153              :       }
    2154              :     else
    2155              :       {
    2156            0 :         word = DynamicStrings_Slice (full, start, i);
    2157              :       }
    2158            0 :     SetM2DebugTrace (word, value);
    2159            0 :     word = DynamicStrings_KillString (word);
    2160            0 :     start = i+1;
    2161            0 :   } while (! (i == -1));
    2162            0 :   full = DynamicStrings_KillString (full);
    2163            0 : }
    2164              : 
    2165              : 
    2166              : /*
    2167              :    SetDebugFunctionLineNumbers - set DebugFunctionLineNumbers.
    2168              : */
    2169              : 
    2170            0 : extern "C" void M2Options_SetDebugFunctionLineNumbers (bool value)
    2171              : {
    2172            0 :   DebugFunctionLineNumbers = value;
    2173            0 : }
    2174              : 
    2175              : 
    2176              : /*
    2177              :    SetGenerateStatementNote - turn on generation of nops if necessary
    2178              :                               to generate pedalogical single stepping.
    2179              : */
    2180              : 
    2181            0 : extern "C" void M2Options_SetGenerateStatementNote (bool value)
    2182              : {
    2183            0 :   M2Options_GenerateStatementNote = value;
    2184            0 : }
    2185              : 
    2186              : 
    2187              : /*
    2188              :    SetSources -
    2189              : */
    2190              : 
    2191            0 : extern "C" void M2Options_SetSources (bool value)
    2192              : {
    2193            0 :   M2Options_Quiet = ! value;
    2194            0 :   SeenSources = value;
    2195            0 : }
    2196              : 
    2197              : 
    2198              : /*
    2199              :    SetDumpSystemExports -
    2200              : */
    2201              : 
    2202           22 : extern "C" void M2Options_SetDumpSystemExports (bool value)
    2203              : {
    2204           22 :   M2Options_DumpSystemExports = value;
    2205           22 : }
    2206              : 
    2207              : 
    2208              : /*
    2209              :    SetSwig -
    2210              : */
    2211              : 
    2212            0 : extern "C" void M2Options_SetSwig (bool value)
    2213              : {
    2214            0 :   M2Options_GenerateSwig = value;
    2215            0 : }
    2216              : 
    2217              : 
    2218              : /*
    2219              :    SetOptimizing -
    2220              : */
    2221              : 
    2222         7801 : extern "C" void M2Options_SetOptimizing (unsigned int value)
    2223              : {
    2224         7801 :   if (value > 0)
    2225              :     {
    2226         7801 :       M2Options_Optimizing = true;
    2227         7801 :       M2Options_OptimizeBasicBlock = true;
    2228         7801 :       M2Options_OptimizeUncalledProcedures = true;
    2229         7801 :       M2Options_OptimizeCommonSubExpressions = true;
    2230         7801 :       M2Options_OptimizeSets = true;
    2231              :     }
    2232              :   else
    2233              :     {
    2234            0 :       M2Options_Optimizing = false;
    2235            0 :       M2Options_OptimizeBasicBlock = false;
    2236            0 :       M2Options_OptimizeUncalledProcedures = false;
    2237            0 :       M2Options_OptimizeCommonSubExpressions = false;
    2238            0 :       M2Options_OptimizeSets = false;
    2239              :     }
    2240         7801 : }
    2241              : 
    2242              : 
    2243              : /*
    2244              :    OverrideLocation - possibly override the location value, depending upon
    2245              :                       whether the -flocation= option was used.
    2246              : */
    2247              : 
    2248    957106724 : extern "C" location_t M2Options_OverrideLocation (location_t location)
    2249              : {
    2250    957106724 :   if (M2Options_ForcedLocation)
    2251              :     {
    2252            0 :       return ForcedLocationValue;
    2253              :     }
    2254              :   else
    2255              :     {
    2256              :       return location;
    2257              :     }
    2258              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2259              :   __builtin_unreachable ();
    2260              : }
    2261              : 
    2262              : 
    2263              : /*
    2264              :    SetForcedLocation - sets the location for the lifetime of this compile to, location.
    2265              :                        This is primarily an internal debugging switch.
    2266              : */
    2267              : 
    2268            0 : extern "C" void M2Options_SetForcedLocation (location_t location)
    2269              : {
    2270            0 :   M2Options_ForcedLocation = true;
    2271            0 :   ForcedLocationValue = location;
    2272            0 : }
    2273              : 
    2274              : 
    2275              : /*
    2276              :    SetUnusedVariableChecking - assigns the UnusedVariableChecking to value.
    2277              : */
    2278              : 
    2279          354 : extern "C" void M2Options_SetUnusedVariableChecking (bool value)
    2280              : {
    2281          354 :   M2Options_UnusedVariableChecking = value;
    2282          354 : }
    2283              : 
    2284              : 
    2285              : /*
    2286              :    SetUnusedParameterChecking - assigns the UnusedParameterChecking to value.
    2287              : */
    2288              : 
    2289            0 : extern "C" void M2Options_SetUnusedParameterChecking (bool value)
    2290              : {
    2291            0 :   M2Options_UnusedParameterChecking = value;
    2292            0 : }
    2293              : 
    2294              : 
    2295              : /*
    2296              :    SetStrictTypeChecking - assigns the StrictTypeChecking flag to value.
    2297              : */
    2298              : 
    2299            0 : extern "C" void M2Options_SetStrictTypeChecking (bool value)
    2300              : {
    2301            0 :   M2Options_StrictTypeChecking = value;
    2302            0 : }
    2303              : 
    2304              : 
    2305              : /*
    2306              :    SetStrictTypeAssignment - assigns the StrictTypeAssignment flag to value.
    2307              : */
    2308              : 
    2309            0 : extern "C" void M2Options_SetStrictTypeAssignment (bool value)
    2310              : {
    2311            0 :   M2Options_StrictTypeAssignment = value;
    2312            0 : }
    2313              : 
    2314              : 
    2315              : /*
    2316              :    SetStrictTypeReason - assigns the StrictTypeReason flag to value.
    2317              : */
    2318              : 
    2319            0 : extern "C" void M2Options_SetStrictTypeReason (bool value)
    2320              : {
    2321            0 :   M2Options_StrictTypeReason = value;
    2322            0 : }
    2323              : 
    2324              : 
    2325              : /*
    2326              :    setdefextension - set the source file definition module extension to arg.
    2327              :                      This should include the . and by default it is set to .def.
    2328              : */
    2329              : 
    2330            6 : extern "C" void M2Options_setdefextension (void * arg)
    2331              : {
    2332            6 :   DynamicStrings_String s;
    2333              : 
    2334            6 :   s = DynamicStrings_InitStringCharStar (arg);
    2335            6 :   M2Search_SetDefExtension (s);
    2336            6 :   s = DynamicStrings_KillString (s);
    2337            6 : }
    2338              : 
    2339              : 
    2340              : /*
    2341              :    setmodextension - set the source file module extension to arg.
    2342              :                      This should include the . and by default it is set to .mod.
    2343              : */
    2344              : 
    2345            6 : extern "C" void M2Options_setmodextension (void * arg)
    2346              : {
    2347            6 :   DynamicStrings_String s;
    2348              : 
    2349            6 :   s = DynamicStrings_InitStringCharStar (arg);
    2350            6 :   M2Search_SetModExtension (s);
    2351            6 :   s = DynamicStrings_KillString (s);
    2352            6 : }
    2353              : 
    2354              : 
    2355              : /*
    2356              :    SetStatistics - turn on/off generate of compile time statistics.
    2357              : */
    2358              : 
    2359            0 : extern "C" void M2Options_SetStatistics (bool on)
    2360              : {
    2361            0 :   M2Options_Statistics = on;
    2362            0 : }
    2363              : 
    2364              : 
    2365              : /*
    2366              :    SetVerbose - set the Verbose flag to, value.  It returns TRUE.
    2367              : */
    2368              : 
    2369            0 : extern "C" bool M2Options_SetVerbose (bool value)
    2370              : {
    2371            0 :   M2Options_Verbose = value;
    2372            0 :   return true;
    2373              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2374              :   __builtin_unreachable ();
    2375              : }
    2376              : 
    2377              : 
    2378              : /*
    2379              :    CppArg - sets the option and arg in the cpp command line.
    2380              : */
    2381              : 
    2382         8800 : extern "C" void M2Options_CppArg (void * opt, void * arg, bool joined)
    2383              : {
    2384         8800 :   DynamicStrings_String s;
    2385              : 
    2386         8800 :   s = DynamicStrings_InitStringCharStar (opt);
    2387         8800 :   if ((DynamicStrings_EqualArray (s, (const char *) "-fcpp-begin", 11)) || (DynamicStrings_EqualArray (s, (const char *) "-fcpp-end", 9)))
    2388              :     {}  /* empty.  */
    2389              :   else
    2390              :     {
    2391              :       /* do nothing  */
    2392         8800 :       if (! (DynamicStrings_EqualArray (CppArgs, (const char *) "", 0)))
    2393              :         {
    2394         8272 :           CppArgs = DynamicStrings_ConCatChar (CppArgs, ' ');
    2395              :         }
    2396         8800 :       CppArgs = DynamicStrings_ConCat (CppArgs, DynamicStrings_Mark (s));
    2397         8800 :       if (arg != NULL)
    2398              :         {
    2399         3696 :           s = DynamicStrings_InitStringCharStar (arg);
    2400         3696 :           if (! joined)
    2401              :             {
    2402         1056 :               CppArgs = DynamicStrings_ConCatChar (CppArgs, ' ');
    2403              :             }
    2404         3696 :           CppArgs = DynamicStrings_ConCat (CppArgs, s);
    2405              :         }
    2406              :     }
    2407         8800 : }
    2408              : 
    2409              : 
    2410              : /*
    2411              :    CppCommandLine - returns the Cpp command line and all arguments.
    2412              :                     NIL is returned if the -fcpp is absent.
    2413              : */
    2414              : 
    2415         2868 : extern "C" DynamicStrings_String M2Options_CppCommandLine (void)
    2416              : {
    2417         2868 :   DynamicStrings_String s;
    2418              : 
    2419         2868 :   if (M2Options_CPreProcessor)
    2420              :     {
    2421         2868 :       s = DynamicStrings_InitStringCharStar (m2configure_FullPathCPP ());
    2422         2868 :       s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (s, ' '), CppArgs);
    2423         2868 :       if (CC1Quiet)
    2424              :         {
    2425         2868 :           s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (s, ' '), DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "-quiet", 6)));
    2426              :         }
    2427         2868 :       return s;
    2428              :     }
    2429              :   else
    2430              :     {
    2431              :       return static_cast<DynamicStrings_String> (NULL);
    2432              :     }
    2433              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2434              :   __builtin_unreachable ();
    2435              : }
    2436              : 
    2437              : 
    2438              : /*
    2439              :    CppRemember - remember a string, s, as a cpp related argument.
    2440              :                  The string, s, is not garbage collected.
    2441              : */
    2442              : 
    2443            0 : extern "C" void M2Options_CppRemember (DynamicStrings_String s)
    2444              : {
    2445            0 :   if ((CppArgs == NULL) || (DynamicStrings_EqualArray (CppArgs, (const char *) "", 0)))
    2446              :     {
    2447            0 :       CppArgs = DynamicStrings_Dup (s);
    2448              :     }
    2449              :   else
    2450              :     {
    2451            0 :       CppArgs = DynamicStrings_ConCatChar (CppArgs, ' ');
    2452            0 :       CppArgs = DynamicStrings_ConCat (CppArgs, s);
    2453              :     }
    2454            0 : }
    2455              : 
    2456              : 
    2457              : /*
    2458              :    GetISO - return TRUE if -fiso was present on the command line.
    2459              : */
    2460              : 
    2461         2412 : extern "C" bool M2Options_GetISO (void)
    2462              : {
    2463         2412 :   return M2Options_Iso;
    2464              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2465              :   __builtin_unreachable ();
    2466              : }
    2467              : 
    2468              : 
    2469              : /*
    2470              :    GetPIM - return TRUE if -fpim was present on the command line.
    2471              : */
    2472              : 
    2473       354703 : extern "C" bool M2Options_GetPIM (void)
    2474              : {
    2475       354703 :   return M2Options_Pim;
    2476              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2477              :   __builtin_unreachable ();
    2478              : }
    2479              : 
    2480              : 
    2481              : /*
    2482              :    GetPIM2 - return TRUE if -fpim2 was present on the command line.
    2483              : */
    2484              : 
    2485            0 : extern "C" bool M2Options_GetPIM2 (void)
    2486              : {
    2487            0 :   return M2Options_Pim2;
    2488              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2489              :   __builtin_unreachable ();
    2490              : }
    2491              : 
    2492              : 
    2493              : /*
    2494              :    GetPIM3 - return TRUE if -fpim3 was present on the command line.
    2495              : */
    2496              : 
    2497            0 : extern "C" bool M2Options_GetPIM3 (void)
    2498              : {
    2499            0 :   return M2Options_Pim3;
    2500              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2501              :   __builtin_unreachable ();
    2502              : }
    2503              : 
    2504              : 
    2505              : /*
    2506              :    GetPIM4 - return TRUE if -fpim4 was present on the command line.
    2507              : */
    2508              : 
    2509         7878 : extern "C" bool M2Options_GetPIM4 (void)
    2510              : {
    2511         7878 :   return M2Options_Pim4;
    2512              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2513              :   __builtin_unreachable ();
    2514              : }
    2515              : 
    2516              : 
    2517              : /*
    2518              :    GetPositiveModFloor - return TRUE if -fpositive-mod-floor was present
    2519              :                          on the command line.
    2520              : */
    2521              : 
    2522          136 : extern "C" bool M2Options_GetPositiveModFloor (void)
    2523              : {
    2524          136 :   return M2Options_PositiveModFloorDiv;
    2525              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2526              :   __builtin_unreachable ();
    2527              : }
    2528              : 
    2529              : 
    2530              : /*
    2531              :    GetFloatValueCheck - return TRUE if -ffloatvalue was present on the
    2532              :                         command line.
    2533              : */
    2534              : 
    2535         1670 : extern "C" bool M2Options_GetFloatValueCheck (void)
    2536              : {
    2537         1670 :   return M2Options_FloatValueChecking;
    2538              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2539              :   __builtin_unreachable ();
    2540              : }
    2541              : 
    2542              : 
    2543              : /*
    2544              :    SetFloatValueCheck - set depending upon the -ffloatvalue.
    2545              : */
    2546              : 
    2547            0 : extern "C" void M2Options_SetFloatValueCheck (bool value)
    2548              : {
    2549            0 :   M2Options_FloatValueChecking = value;
    2550            0 : }
    2551              : 
    2552              : 
    2553              : /*
    2554              :    GetWholeValueCheck - return TRUE if -fwholevalue was present on the
    2555              :                         command line.
    2556              : */
    2557              : 
    2558        50020 : extern "C" bool M2Options_GetWholeValueCheck (void)
    2559              : {
    2560        50020 :   return M2Options_WholeValueChecking;
    2561              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2562              :   __builtin_unreachable ();
    2563              : }
    2564              : 
    2565              : 
    2566              : /*
    2567              :    SetWholeValueCheck - set depending upon the -fwholevalue.
    2568              : */
    2569              : 
    2570            0 : extern "C" void M2Options_SetWholeValueCheck (bool value)
    2571              : {
    2572            0 :   M2Options_WholeValueChecking = value;
    2573            0 : }
    2574              : 
    2575              : 
    2576              : /*
    2577              :    SetWall - set all warnings to, value.
    2578              : */
    2579              : 
    2580          612 : extern "C" void M2Options_SetWall (bool value)
    2581              : {
    2582          612 :   M2Options_UnusedVariableChecking = value;
    2583          612 :   M2Options_UnusedParameterChecking = value;
    2584          612 :   M2Options_UninitVariableChecking = value;
    2585          612 :   M2Options_PedanticCast = value;
    2586          612 :   M2Options_PedanticParamNames = value;
    2587          612 :   M2Options_StyleChecking = value;
    2588          612 :   M2Options_CaseEnumChecking = value;
    2589          612 : }
    2590              : 
    2591              : 
    2592              : /*
    2593              :    SetSaveTemps - turn on/off -save-temps.
    2594              : */
    2595              : 
    2596            0 : extern "C" void M2Options_SetSaveTemps (bool value)
    2597              : {
    2598            0 :   M2Options_SaveTemps = value;
    2599            0 : }
    2600              : 
    2601              : 
    2602              : /*
    2603              :    SetSaveTempsDir - turn on/off -save-temps and specify the directory.
    2604              : */
    2605              : 
    2606            0 : extern "C" void M2Options_SetSaveTempsDir (void * arg)
    2607              : {
    2608            0 :   SaveTempsDir = DynamicStrings_InitStringCharStar (arg);
    2609            0 :   M2Options_SaveTemps = true;
    2610            0 : }
    2611              : 
    2612              : 
    2613              : /*
    2614              :    GetSaveTempsDir - return SaveTempsDir or NIL if -save-temps was not used.
    2615              : */
    2616              : 
    2617       244920 : extern "C" DynamicStrings_String M2Options_GetSaveTempsDir (void)
    2618              : {
    2619       244920 :   return SaveTempsDir;
    2620              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2621              :   __builtin_unreachable ();
    2622              : }
    2623              : 
    2624              : 
    2625              : /*
    2626              :    SetDumpDir - Set the dump dir.
    2627              : */
    2628              : 
    2629        12723 : extern "C" void M2Options_SetDumpDir (void * arg)
    2630              : {
    2631        12723 :   DumpDir = DynamicStrings_InitStringCharStar (arg);
    2632        12723 : }
    2633              : 
    2634              : 
    2635              : /*
    2636              :    GetDumpDir - return DumpDir or NIL.
    2637              : */
    2638              : 
    2639       244920 : extern "C" DynamicStrings_String M2Options_GetDumpDir (void)
    2640              : {
    2641       244920 :   return DumpDir;
    2642              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2643              :   __builtin_unreachable ();
    2644              : }
    2645              : 
    2646              : 
    2647              : /*
    2648              :    SetGenModuleList - set the GenModuleList flag to true and pass
    2649              :                       set GenModuleListFilename to filename.
    2650              : */
    2651              : 
    2652         2690 : extern "C" void M2Options_SetGenModuleList (bool value, void * filename)
    2653              : {
    2654         2690 :   GenModuleListFilename = DynamicStrings_KillString (GenModuleListFilename);
    2655         2690 :   if (filename != NULL)
    2656              :     {
    2657         2690 :       GenModuleListFilename = DynamicStrings_InitStringCharStar (filename);
    2658              :     }
    2659         2690 :   M2Options_GenModuleList = value;
    2660         2690 : }
    2661              : 
    2662              : 
    2663              : /*
    2664              :    GetGenModuleFilename - returns the filename set by SetGenModuleList.
    2665              : */
    2666              : 
    2667         5368 : extern "C" DynamicStrings_String M2Options_GetGenModuleFilename (void)
    2668              : {
    2669         5368 :   return GenModuleListFilename;
    2670              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2671              :   __builtin_unreachable ();
    2672              : }
    2673              : 
    2674              : 
    2675              : /*
    2676              :    SetShared - sets the SharedFlag to value.
    2677              : */
    2678              : 
    2679            0 : extern "C" void M2Options_SetShared (bool value)
    2680              : {
    2681            0 :   M2Options_SharedFlag = value;
    2682            0 : }
    2683              : 
    2684              : 
    2685              : /*
    2686              :    SetUninitVariableChecking - sets the UninitVariableChecking and
    2687              :                                UninitVariableConditionalChecking flags to value
    2688              :                                depending upon arg string.  The arg string
    2689              :                                can be: "all", "known,cond", "cond,known", "known"
    2690              :                                or "cond".
    2691              : */
    2692              : 
    2693          625 : extern "C" int M2Options_SetUninitVariableChecking (bool value, void * arg)
    2694              : {
    2695          625 :   DynamicStrings_String s;
    2696              : 
    2697          625 :   if (Debugging)
    2698              :     {
    2699              :       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
    2700              :       if (value)
    2701              :         {
    2702              :           libc_printf ((const char *) "SetUninitVariableChecking (TRUE, %s)\\n", 38, arg);
    2703              :         }
    2704              :       else
    2705              :         {
    2706              :           libc_printf ((const char *) "SetUninitVariableChecking (FALSE, %s)\\n", 39, arg);
    2707              :         }
    2708              :     }
    2709          625 :   s = DynamicStrings_InitStringCharStar (arg);
    2710          625 :   if (((DynamicStrings_EqualArray (s, (const char *) "all", 3)) || (DynamicStrings_EqualArray (s, (const char *) "known,cond", 10))) || (DynamicStrings_EqualArray (s, (const char *) "cond,known", 10)))
    2711              :     {
    2712          427 :       M2Options_UninitVariableChecking = value;
    2713          427 :       M2Options_UninitVariableConditionalChecking = value;
    2714          427 :       s = DynamicStrings_KillString (s);
    2715          427 :       return 1;
    2716              :     }
    2717          198 :   else if (DynamicStrings_EqualArray (s, (const char *) "known", 5))
    2718              :     {
    2719              :       /* avoid dangling else.  */
    2720          198 :       M2Options_UninitVariableChecking = value;
    2721          198 :       s = DynamicStrings_KillString (s);
    2722          198 :       return 1;
    2723              :     }
    2724            0 :   else if (DynamicStrings_EqualArray (s, (const char *) "cond", 4))
    2725              :     {
    2726              :       /* avoid dangling else.  */
    2727            0 :       M2Options_UninitVariableConditionalChecking = value;
    2728            0 :       s = DynamicStrings_KillString (s);
    2729            0 :       return 1;
    2730              :     }
    2731              :   else
    2732              :     {
    2733              :       /* avoid dangling else.  */
    2734            0 :       s = DynamicStrings_KillString (s);
    2735            0 :       return 0;
    2736              :     }
    2737              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2738              :   __builtin_unreachable ();
    2739              : }
    2740              : 
    2741              : 
    2742              : /*
    2743              :    SetCaseEnumChecking - sets the CaseEnumChecking to value.
    2744              : */
    2745              : 
    2746          700 : extern "C" void M2Options_SetCaseEnumChecking (bool value)
    2747              : {
    2748          700 :   M2Options_CaseEnumChecking = value;
    2749          700 : }
    2750              : 
    2751              : 
    2752              : /*
    2753              :    SetDebugBuiltins - sets the DebugBuiltins to value.
    2754              : */
    2755              : 
    2756            0 : extern "C" void M2Options_SetDebugBuiltins (bool value)
    2757              : {
    2758            0 :   M2Options_DebugBuiltins = value;
    2759            0 : }
    2760              : 
    2761              : 
    2762              : /*
    2763              :    SetIBMLongDouble - enable/disable LONGREAL to map onto the
    2764              :                       IBM long double 128 bit data type.
    2765              :                       (Only available on the ppc).
    2766              : */
    2767              : 
    2768            0 : extern "C" void M2Options_SetIBMLongDouble (bool value)
    2769              : {
    2770            0 :   IBMLongDouble = value;
    2771            0 :   if (value)
    2772              :     {
    2773            0 :       IEEELongDouble = false;
    2774              :     }
    2775            0 : }
    2776              : 
    2777              : 
    2778              : /*
    2779              :    GetIBMLongDouble - return the value of IBMLongDouble.
    2780              : */
    2781              : 
    2782            0 : extern "C" bool M2Options_GetIBMLongDouble (void)
    2783              : {
    2784            0 :   return IBMLongDouble;
    2785              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2786              :   __builtin_unreachable ();
    2787              : }
    2788              : 
    2789              : 
    2790              : /*
    2791              :    SetIEEELongDouble - enable/disable LONGREAL to map onto the
    2792              :                        IEEE long double 128 bit data type.
    2793              :                        (Only available on the ppc).
    2794              : */
    2795              : 
    2796            0 : extern "C" void M2Options_SetIEEELongDouble (bool value)
    2797              : {
    2798            0 :   IEEELongDouble = value;
    2799            0 :   if (value)
    2800              :     {
    2801            0 :       IBMLongDouble = false;
    2802              :     }
    2803            0 : }
    2804              : 
    2805              : 
    2806              : /*
    2807              :    GetIEEELongDouble - return the value of IEEELongDouble.
    2808              : */
    2809              : 
    2810        14952 : extern "C" bool M2Options_GetIEEELongDouble (void)
    2811              : {
    2812        14952 :   return IEEELongDouble;
    2813              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2814              :   __builtin_unreachable ();
    2815              : }
    2816              : 
    2817              : 
    2818              : /*
    2819              :    GetDumpDeclFilename - returns the DumpDeclFilename.
    2820              : */
    2821              : 
    2822            0 : extern "C" DynamicStrings_String M2Options_GetDumpDeclFilename (void)
    2823              : {
    2824            0 :   return DumpDeclFilename;
    2825              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2826              :   __builtin_unreachable ();
    2827              : }
    2828              : 
    2829              : 
    2830              : /*
    2831              :    SetDumpDeclFilename -
    2832              : */
    2833              : 
    2834            0 : extern "C" void M2Options_SetDumpDeclFilename (bool value, void * filename)
    2835              : {
    2836            0 :   DumpDecl = value;
    2837            0 :   DumpDeclFilename = DynamicStrings_KillString (DumpDeclFilename);
    2838            0 :   if (filename != NULL)
    2839              :     {
    2840            0 :       DumpDeclFilename = DynamicStrings_InitStringCharStar (filename);
    2841              :     }
    2842            0 : }
    2843              : 
    2844              : 
    2845              : /*
    2846              :    GetDumpQuadFilename - returns the DumpQuadFilename.
    2847              : */
    2848              : 
    2849            0 : extern "C" DynamicStrings_String M2Options_GetDumpQuadFilename (void)
    2850              : {
    2851            0 :   return DumpQuadFilename;
    2852              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2853              :   __builtin_unreachable ();
    2854              : }
    2855              : 
    2856              : 
    2857              : /*
    2858              :    SetDumpQuadFilename -
    2859              : */
    2860              : 
    2861            0 : extern "C" void M2Options_SetDumpQuadFilename (bool value, void * filename)
    2862              : {
    2863            0 :   DumpQuad = value;
    2864            0 :   DumpQuadFilename = DynamicStrings_KillString (DumpQuadFilename);
    2865            0 :   if (filename != NULL)
    2866              :     {
    2867            0 :       DumpQuadFilename = DynamicStrings_InitStringCharStar (filename);
    2868              :     }
    2869            0 : }
    2870              : 
    2871              : 
    2872              : /*
    2873              :    GetDumpGimpleFilename - returns the DumpGimpleFilename.
    2874              : */
    2875              : 
    2876            0 : extern "C" DynamicStrings_String M2Options_GetDumpGimpleFilename (void)
    2877              : {
    2878            0 :   return DumpGimpleFilename;
    2879              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2880              :   __builtin_unreachable ();
    2881              : }
    2882              : 
    2883              : 
    2884              : /*
    2885              :    SetDumpGimpleFilename - set DumpGimpleFilename to filename.
    2886              : */
    2887              : 
    2888            0 : extern "C" void M2Options_SetDumpGimpleFilename (bool value, void * filename)
    2889              : {
    2890            0 :   DumpGimple = value;
    2891            0 :   DumpGimpleFilename = DynamicStrings_KillString (DumpGimpleFilename);
    2892            0 :   if (value && (filename != NULL))
    2893              :     {
    2894            0 :       DumpGimpleFilename = DynamicStrings_InitStringCharStar (filename);
    2895              :     }
    2896            0 : }
    2897              : 
    2898              : 
    2899              : /*
    2900              :    SetM2DumpFilter - sets the filter to a comma separated list of procedures
    2901              :                      and modules.  Not to be confused with SetM2Dump below
    2902              :                      which enables the class of data structures to be dumped.
    2903              : */
    2904              : 
    2905            0 : extern "C" void M2Options_SetM2DumpFilter (bool value, void * filter)
    2906              : {
    2907            0 :   M2DumpFilter = DynamicStrings_KillString (M2DumpFilter);
    2908            0 :   if (value && (filter != NULL))
    2909              :     {
    2910            0 :       M2DumpFilter = DynamicStrings_InitStringCharStar (filter);
    2911              :     }
    2912            0 : }
    2913              : 
    2914              : 
    2915              : /*
    2916              :    GetM2DumpFilter - returns the dump filter.
    2917              : */
    2918              : 
    2919            0 : extern "C" void * M2Options_GetM2DumpFilter (void)
    2920              : {
    2921            0 :   if (M2DumpFilter == NULL)
    2922              :     {
    2923              :       return NULL;
    2924              :     }
    2925              :   else
    2926              :     {
    2927            0 :       return DynamicStrings_string (M2DumpFilter);
    2928              :     }
    2929              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2930              :   __builtin_unreachable ();
    2931              : }
    2932              : 
    2933              : 
    2934              : /*
    2935              :    SetM2Dump - sets the dump via a comma separated list: quad,decl,gimple,all.
    2936              :                It returns TRUE if the comma separated list is valid.
    2937              : */
    2938              : 
    2939            0 : extern "C" bool M2Options_SetM2Dump (bool value, void * filter)
    2940              : {
    2941            0 :   bool result;
    2942            0 :   DynamicStrings_String dump;
    2943            0 :   int start;
    2944            0 :   int i;
    2945              : 
    2946            0 :   if (filter == NULL)
    2947              :     {
    2948              :       return false;
    2949              :     }
    2950            0 :   if (M2Dump != NULL)
    2951              :     {
    2952            0 :       M2Dump = DynamicStrings_KillString (M2Dump);
    2953              :     }
    2954            0 :   M2Dump = DynamicStrings_InitStringCharStar (filter);
    2955            0 :   start = 0;
    2956            0 :   do {
    2957            0 :     i = DynamicStrings_Index (M2Dump, ',', static_cast<unsigned int> (start));
    2958            0 :     if (i == -1)
    2959              :       {
    2960            0 :         dump = DynamicStrings_Slice (M2Dump, start, 0);
    2961              :       }
    2962              :     else
    2963              :       {
    2964            0 :         dump = DynamicStrings_Slice (M2Dump, start, i);
    2965              :       }
    2966            0 :     result = MatchDump (dump, value);
    2967            0 :     dump = DynamicStrings_KillString (dump);
    2968            0 :     if (! result)
    2969              :       {
    2970              :         return false;
    2971              :       }
    2972            0 :     start = i+1;
    2973            0 :   } while (! (i == -1));
    2974              :   return true;
    2975              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2976              :   __builtin_unreachable ();
    2977              : }
    2978              : 
    2979              : 
    2980              : /*
    2981              :    GetDumpGimple - return TRUE if the dump gimple flag is set from SetM2Dump.
    2982              : */
    2983              : 
    2984       224974 : extern "C" bool M2Options_GetDumpGimple (void)
    2985              : {
    2986       224974 :   return DumpGimple;
    2987              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    2988              :   __builtin_unreachable ();
    2989              : }
    2990              : 
    2991              : 
    2992              : /*
    2993              :    GetDumpQuad - return TRUE if the dump quad flag is set from SetM2Dump.
    2994              : */
    2995              : 
    2996        69412 : extern "C" bool M2Options_GetDumpQuad (void)
    2997              : {
    2998        69412 :   return DumpQuad;
    2999              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3000              :   __builtin_unreachable ();
    3001              : }
    3002              : 
    3003              : 
    3004              : /*
    3005              :    GetDumpDecl - return TRUE if the dump decl flag is set from SetM2Dump.
    3006              : */
    3007              : 
    3008        27820 : extern "C" bool M2Options_GetDumpDecl (void)
    3009              : {
    3010        27820 :   return DumpDecl;
    3011              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3012              :   __builtin_unreachable ();
    3013              : }
    3014              : 
    3015              : 
    3016              : /*
    3017              :    GetDebugTraceQuad - return DebugTraceQuad.
    3018              : */
    3019              : 
    3020    180474601 : extern "C" bool M2Options_GetDebugTraceQuad (void)
    3021              : {
    3022    180474601 :   return DebugTraceQuad;
    3023              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3024              :   __builtin_unreachable ();
    3025              : }
    3026              : 
    3027              : 
    3028              : /*
    3029              :    GetDebugTraceTree - return DebugTraceTree.
    3030              : */
    3031              : 
    3032            0 : extern "C" bool M2Options_GetDebugTraceTree (void)
    3033              : {
    3034            0 :   return DebugTraceTree;
    3035              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3036              :   __builtin_unreachable ();
    3037              : }
    3038              : 
    3039              : 
    3040              : /*
    3041              :    GetDebugTraceToken - return DebugTraceToken.
    3042              : */
    3043              : 
    3044    958197196 : extern "C" bool M2Options_GetDebugTraceToken (void)
    3045              : {
    3046    958197196 :   return DebugTraceToken;
    3047              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3048              :   __builtin_unreachable ();
    3049              : }
    3050              : 
    3051              : 
    3052              : /*
    3053              :    GetDebugTraceLine - return DebugTraceLine.
    3054              : */
    3055              : 
    3056     65921892 : extern "C" bool M2Options_GetDebugTraceLine (void)
    3057              : {
    3058     65921892 :   return DebugTraceLine;
    3059              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3060              :   __builtin_unreachable ();
    3061              : }
    3062              : 
    3063              : 
    3064              : /*
    3065              :    GetDebugFunctionLineNumbers - return DebugFunctionLineNumbers.
    3066              : */
    3067              : 
    3068        13652 : extern "C" bool M2Options_GetDebugFunctionLineNumbers (void)
    3069              : {
    3070        13652 :   return DebugFunctionLineNumbers;
    3071              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3072              :   __builtin_unreachable ();
    3073              : }
    3074              : 
    3075              : 
    3076              : /*
    3077              :    GetEnableForward - return EnableForward.
    3078              : */
    3079              : 
    3080           60 : extern "C" bool M2Options_GetEnableForward (void)
    3081              : {
    3082           60 :   return EnableForward;
    3083              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3084              :   __builtin_unreachable ();
    3085              : }
    3086              : 
    3087              : 
    3088              : /*
    3089              :    SetEnableForward - set EnableForward to value.
    3090              : */
    3091              : 
    3092            0 : extern "C" void M2Options_SetEnableForward (bool value)
    3093              : {
    3094            0 :   EnableForward = value;
    3095            0 : }
    3096              : 
    3097              : 
    3098              : /*
    3099              :    SetFileOffsetBits - create SYSTEM.COFF_T as a signed integer of size bits.
    3100              : */
    3101              : 
    3102            0 : extern "C" bool M2Options_SetFileOffsetBits (bool value, unsigned int bits)
    3103              : {
    3104            0 :   if (value)
    3105              :     {
    3106            0 :       OffTBits = bits;
    3107              :     }
    3108            0 :   return true;
    3109              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3110              :   __builtin_unreachable ();
    3111              : }
    3112              : 
    3113              : 
    3114              : /*
    3115              :    GetFileOffsetBits - return the number of bits used to create SYSTEM.COFF_T.
    3116              : */
    3117              : 
    3118        14952 : extern "C" unsigned int M2Options_GetFileOffsetBits (void)
    3119              : {
    3120        14952 :   return OffTBits;
    3121              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3122              :   __builtin_unreachable ();
    3123              : }
    3124              : 
    3125              : 
    3126              : /*
    3127              :    SetMemReport - set MemReport to value.
    3128              : */
    3129              : 
    3130            0 : extern "C" void M2Options_SetMemReport (bool value)
    3131              : {
    3132            0 :   M2Options_MemReport = value;
    3133            0 : }
    3134              : 
    3135              : 
    3136              : /*
    3137              :    SetTimeReport - set TimeReport to value.
    3138              : */
    3139              : 
    3140            0 : extern "C" void M2Options_SetTimeReport (bool value)
    3141              : {
    3142            0 :   M2Options_TimeReport = value;
    3143            0 : }
    3144              : 
    3145              : 
    3146              : /*
    3147              :    SetWideset - set the Wideset flag to value.
    3148              : */
    3149              : 
    3150            6 : extern "C" void M2Options_SetWideset (bool value)
    3151              : {
    3152            6 :   WidesetFlag = value;
    3153            6 : }
    3154              : 
    3155              : 
    3156              : /*
    3157              :    GetWideset - return the Wideset flag value.
    3158              : */
    3159              : 
    3160        17122 : extern "C" bool M2Options_GetWideset (void)
    3161              : {
    3162        17122 :   return WidesetFlag;
    3163              :   /* static analysis guarentees a RETURN statement will be used before here.  */
    3164              :   __builtin_unreachable ();
    3165              : }
    3166              : 
    3167              : 
    3168              : /*
    3169              :    FinaliseOptions - once all options have been parsed we set any inferred
    3170              :                      values.
    3171              : */
    3172              : 
    3173        14952 : extern "C" void M2Options_FinaliseOptions (void)
    3174              : {
    3175              :   /* currently only one value, this could be make an option in the future  */
    3176        14952 :   M2Options_VariantValueChecking = M2Options_Iso;
    3177        14952 : }
    3178              : 
    3179        14952 : extern "C" void _M2_M2Options_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
    3180              : {
    3181        14952 :   M2Options_cflag = false;  /* -c.  */
    3182        14952 :   RuntimeModuleOverride = DynamicStrings_InitString ((const char *) "m2iso:RTentity,m2iso:Storage,m2iso:SYSTEM,m2iso:M2RTS,m2iso:RTExceptions,m2iso:IOLink", 85);  /* -c.  */
    3183        14952 :   CppArgs = DynamicStrings_InitString ((const char *) "", 0);
    3184        14952 :   M2Options_Pim = true;
    3185        14952 :   M2Options_Pim2 = false;
    3186        14952 :   M2Options_Pim3 = false;
    3187        14952 :   M2Options_Pim4 = true;
    3188        14952 :   M2Options_PositiveModFloorDiv = false;
    3189        14952 :   M2Options_Iso = false;
    3190        14952 :   SeenSources = false;
    3191        14952 :   M2Options_Statistics = false;
    3192        14952 :   M2Options_StyleChecking = false;
    3193        14952 :   M2Options_CompilerDebugging = false;
    3194        14952 :   M2Options_GenerateDebugging = false;
    3195        14952 :   M2Options_Optimizing = false;
    3196        14952 :   M2Options_Pedantic = false;
    3197        14952 :   M2Options_Verbose = false;
    3198        14952 :   M2Options_Quiet = true;
    3199        14952 :   CC1Quiet = true;
    3200        14952 :   M2Options_Profiling = false;
    3201        14952 :   DumpQuad = false;
    3202        14952 :   M2Options_OptimizeBasicBlock = false;
    3203        14952 :   M2Options_OptimizeUncalledProcedures = false;
    3204        14952 :   M2Options_OptimizeCommonSubExpressions = false;
    3205        14952 :   M2Options_OptimizeSets = false;
    3206        14952 :   M2Options_NilChecking = false;
    3207        14952 :   M2Options_WholeDivChecking = false;
    3208        14952 :   M2Options_WholeValueChecking = false;
    3209        14952 :   M2Options_FloatValueChecking = false;
    3210        14952 :   M2Options_IndexChecking = false;
    3211        14952 :   M2Options_RangeChecking = false;
    3212        14952 :   M2Options_ReturnChecking = false;
    3213        14952 :   M2Options_CaseElseChecking = false;
    3214        14952 :   M2Options_CPreProcessor = false;
    3215        14952 :   M2Options_LineDirectives = true;
    3216        14952 :   M2Options_ExtendedOpaque = false;
    3217        14952 :   M2Options_UnboundedByReference = false;
    3218        14952 :   M2Options_VerboseUnbounded = false;
    3219        14952 :   M2Options_PedanticParamNames = false;
    3220        14952 :   M2Options_PedanticCast = false;
    3221        14952 :   M2Options_Xcode = false;
    3222        14952 :   M2Options_DumpSystemExports = false;
    3223        14952 :   M2Options_GenerateSwig = false;
    3224        14952 :   M2Options_Exceptions = true;
    3225        14952 :   M2Options_DebugBuiltins = false;
    3226        14952 :   M2Options_ForcedLocation = false;
    3227        14952 :   M2Options_WholeProgram = false;
    3228        14952 :   DebugTraceQuad = false;
    3229        14952 :   DebugTraceTree = false;
    3230        14952 :   DebugTraceLine = false;
    3231        14952 :   DebugTraceToken = false;
    3232        14952 :   DebugFunctionLineNumbers = false;
    3233        14952 :   M2Options_GenerateStatementNote = false;
    3234        14952 :   M2Options_LowerCaseKeywords = false;
    3235        14952 :   M2Options_UnusedVariableChecking = false;
    3236        14952 :   M2Options_UnusedParameterChecking = false;
    3237        14952 :   M2Options_StrictTypeChecking = true;
    3238        14952 :   M2Options_StrictTypeAssignment = true;
    3239        14952 :   M2Options_StrictTypeReason = true;
    3240        14952 :   M2Options_AutoInit = false;
    3241        14952 :   M2Options_SaveTemps = false;
    3242        14952 :   M2Options_ScaffoldDynamic = true;
    3243        14952 :   M2Options_ScaffoldStatic = false;
    3244        14952 :   M2Options_ScaffoldMain = false;
    3245        14952 :   UselistFilename = static_cast<DynamicStrings_String> (NULL);
    3246        14952 :   M2Options_GenModuleList = false;
    3247        14952 :   GenModuleListFilename = static_cast<DynamicStrings_String> (NULL);
    3248        14952 :   M2Options_SharedFlag = false;
    3249        14952 :   Barg = static_cast<DynamicStrings_String> (NULL);
    3250        14952 :   MDFlag = false;
    3251        14952 :   MMDFlag = false;
    3252        14952 :   DepTarget = static_cast<DynamicStrings_String> (NULL);
    3253        14952 :   MPFlag = false;
    3254        14952 :   SaveTempsDir = static_cast<DynamicStrings_String> (NULL);
    3255        14952 :   DumpDir = static_cast<DynamicStrings_String> (NULL);
    3256        14952 :   M2Options_UninitVariableChecking = false;
    3257        14952 :   M2Options_UninitVariableConditionalChecking = false;
    3258        14952 :   M2Options_CaseEnumChecking = false;
    3259        14952 :   MFlag = false;
    3260        14952 :   MMFlag = false;
    3261        14952 :   MFarg = static_cast<DynamicStrings_String> (NULL);
    3262        14952 :   MTFlag = static_cast<DynamicStrings_String> (NULL);
    3263        14952 :   MQFlag = static_cast<DynamicStrings_String> (NULL);
    3264        14952 :   InitializeLongDoubleFlags ();
    3265        14952 :   M2Prefix = DynamicStrings_InitString ((const char *) "", 0);
    3266        14952 :   M2PathName = DynamicStrings_InitString ((const char *) "", 0);
    3267        14952 :   DumpQuadFilename = static_cast<DynamicStrings_String> (NULL);
    3268        14952 :   DumpGimpleFilename = static_cast<DynamicStrings_String> (NULL);
    3269        14952 :   DumpDeclFilename = static_cast<DynamicStrings_String> (NULL);
    3270        14952 :   DumpDecl = false;
    3271        14952 :   DumpQuad = false;
    3272        14952 :   DumpGimple = false;
    3273        14952 :   M2Dump = static_cast<DynamicStrings_String> (NULL);
    3274        14952 :   M2DumpFilter = static_cast<DynamicStrings_String> (NULL);
    3275        14952 :   M2Options_TimeReport = false;
    3276        14952 :   M2Options_MemReport = false;
    3277        14952 :   EnableForward = true;
    3278        14952 :   OffTBits = 0;  /* Default to CSSIZE_T.  */
    3279        14952 :   WidesetFlag = true;  /* Default to CSSIZE_T.  */
    3280        14952 : }
    3281              : 
    3282            0 : extern "C" void _M2_M2Options_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
    3283              : {
    3284            0 : }
        

Generated by: LCOV version 2.4-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.