LCOV - code coverage report
Current view: top level - gcc/m2/gm2-gcc - init.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 100.0 % 85 85
Test Date: 2026-02-28 14:20:25 Functions: 100.0 % 2 2
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* init.cc initializes the modules of the GNU Modula-2 front end.
       2              : 
       3              : Copyright (C) 2012-2026 Free Software Foundation, Inc.
       4              : Contributed by Gaius Mulley <gaius@glam.ac.uk>.
       5              : 
       6              : This file is part of GNU Modula-2.
       7              : 
       8              : GNU Modula-2 is free software; you can redistribute it and/or modify
       9              : it under the terms of the GNU General Public License as published by
      10              : the Free Software Foundation; either version 3, or (at your option)
      11              : any later version.
      12              : 
      13              : GNU Modula-2 is distributed in the hope that it will be useful, but
      14              : WITHOUT ANY WARRANTY; without even the implied warranty of
      15              : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      16              : General Public License for more details.
      17              : 
      18              : You should have received a copy of the GNU General Public License
      19              : along with GNU Modula-2; see the file COPYING3.  If not see
      20              : <http://www.gnu.org/licenses/>.  */
      21              : 
      22              : #include "init.h"
      23              : #include "config.h"
      24              : #include "system.h"
      25              : 
      26              : #if defined(__GNUG__)
      27              : #define EXTERN extern "C"
      28              : #else /* !__GNUG__  */
      29              : #define EXTERN extern
      30              : #endif /* !__GNUG__  */
      31              : 
      32              : EXTERN void _M2_M2Bitset_init (int argc, char *argv[], char *envp[]);
      33              : EXTERN void _M2_Debug_init (int argc, char *argv[], char *envp[]);
      34              : EXTERN void _M2_M2Defaults_init (int argc, char *argv[], char *envp[]);
      35              : EXTERN void _M2_Environment_init (int argc, char *argv[], char *envp[]);
      36              : EXTERN void _M2_RTExceptions_init (int argc, char *argv[], char *envp[]);
      37              : EXTERN void _M2_M2EXCEPTION_init (int argc, char *argv[], char *envp[]);
      38              : EXTERN void _M2_M2RTS_init (int argc, char *argv[], char *envp[]);
      39              : EXTERN void _M2_M2Dependent_init (int argc, char *argv[], char *envp[]);
      40              : EXTERN void _M2_SysExceptions_init (int argc, char *argv[], char *envp[]);
      41              : EXTERN void _M2_DynamicStrings_init (int argc, char *argv[], char *envp[]);
      42              : EXTERN void _M2_Assertion_init (int argc, char *argv[], char *envp[]);
      43              : EXTERN void _M2_FormatStrings_init (int argc, char *argv[], char *envp[]);
      44              : EXTERN void _M2_FIO_init (int argc, char *argv[], char *envp[]);
      45              : EXTERN void _M2_SFIO_init (int argc, char *argv[], char *envp[]);
      46              : EXTERN void _M2_SArgs_init (int argc, char *argv[], char *envp[]);
      47              : EXTERN void _M2_Lists_init (int argc, char *argv[], char *envp[]);
      48              : EXTERN void _M2_UnixArgs_init (int argc, char *argv[], char *envp[]);
      49              : EXTERN void _M2_Args_init (int argc, char *argv[], char *envp[]);
      50              : EXTERN void _M2_wrapc_init (int argc, char *argv[], char *envp[]);
      51              : EXTERN void _M2_TimeString_init (int argc, char *argv[], char *envp[]);
      52              : EXTERN void _M2_IO_init (int argc, char *argv[], char *envp[]);
      53              : EXTERN void _M2_StdIO_init (int argc, char *argv[], char *envp[]);
      54              : EXTERN void _M2_CmdArgs_init (int argc, char *argv[], char *envp[]);
      55              : EXTERN void _M2_M2Preprocess_init (int argc, char *argv[], char *envp[]);
      56              : EXTERN void _M2_M2Error_init (int argc, char *argv[], char *envp[]);
      57              : EXTERN void _M2_M2Search_init (int argc, char *argv[], char *envp[]);
      58              : EXTERN void _M2_DynamicPath_init (int argc, char *argv[], char *envp[]);
      59              : EXTERN void _M2_PathName_init (int argc, char *argv[], char *envp[]);
      60              : EXTERN void _M2_Indexing_init (int argc, char *argv[], char *envp[]);
      61              : EXTERN void _M2_NameKey_init (int argc, char *argv[], char *envp[]);
      62              : EXTERN void _M2_NumberIO_init (int argc, char *argv[], char *envp[]);
      63              : EXTERN void _M2_FpuIO_init (int argc, char *argv[], char *envp[]);
      64              : EXTERN void _M2_SysStorage_init (int argc, char *argv[], char *envp[]);
      65              : EXTERN void _M2_Storage_init (int argc, char *argv[], char *envp[]);
      66              : EXTERN void _M2_StrIO_init (int argc, char *argv[], char *envp[]);
      67              : EXTERN void _M2_M2Debug_init (int argc, char *argv[], char *envp[]);
      68              : EXTERN void _M2_M2Batch_init (int argc, char *argv[], char *envp[]);
      69              : EXTERN void _M2_StrLib_init (int argc, char *argv[], char *envp[]);
      70              : EXTERN void _M2_M2ALU_init (int argc, char *argv[], char *envp[]);
      71              : EXTERN void _M2_M2Options_init (int argc, char *argv[], char *envp[]);
      72              : EXTERN void _M2_M2Comp_init (int argc, char *argv[], char *envp[]);
      73              : EXTERN void _M2_M2LexBuf_init (int argc, char *argv[], char *envp[]);
      74              : EXTERN void _M2_SymbolTable_init (int argc, char *argv[], char *envp[]);
      75              : EXTERN void _M2_M2Base_init (int argc, char *argv[], char *envp[]);
      76              : EXTERN void _M2_M2Quads_init (int argc, char *argv[], char *envp[]);
      77              : EXTERN void _M2_SymbolKey_init (int argc, char *argv[], char *envp[]);
      78              : EXTERN void _M2_FifoQueue_init (int argc, char *argv[], char *envp[]);
      79              : EXTERN void _M2_M2Reserved_init (int argc, char *argv[], char *envp[]);
      80              : EXTERN void _M2_M2Const_init (int argc, char *argv[], char *envp[]);
      81              : EXTERN void _M2_M2LangDump_init (int argc, char *argv[], char *envp[]);
      82              : EXTERN void _M2_P1SymBuild_init (int argc, char *argv[], char *envp[]);
      83              : EXTERN void _M2_P2SymBuild_init (int argc, char *argv[], char *envp[]);
      84              : EXTERN void _M2_P3SymBuild_init (int argc, char *argv[], char *envp[]);
      85              : EXTERN void _M2_M2System_init (int argc, char *argv[], char *envp[]);
      86              : EXTERN void _M2_M2BasicBlock_init (int argc, char *argv[], char *envp[]);
      87              : EXTERN void _M2_M2Pass_init (int argc, char *argv[], char *envp[]);
      88              : EXTERN void _M2_M2Code_init (int argc, char *argv[], char *envp[]);
      89              : EXTERN void _M2_M2AsmUtil_init (int argc, char *argv[], char *envp[]);
      90              : EXTERN void _M2_M2FileName_init (int argc, char *argv[], char *envp[]);
      91              : EXTERN void _M2_M2Students_init (int argc, char *argv[], char *envp[]);
      92              : EXTERN void _M2_StrCase_init (int argc, char *argv[], char *envp[]);
      93              : EXTERN void _M2_SymbolConversion_init (int argc, char *argv[], char *envp[]);
      94              : EXTERN void _M2_M2GCCDeclare_init (int argc, char *argv[], char *envp[]);
      95              : EXTERN void _M2_M2GenGCC_init (int argc, char *argv[], char *envp[]);
      96              : EXTERN void _M2_M2Range_init (int argc, char *argv[], char *envp[]);
      97              : EXTERN void _M2_M2Swig_init (int argc, char *argv[], char *envp[]);
      98              : EXTERN void _M2_M2MetaError_init (int argc, char *argv[], char *envp[]);
      99              : EXTERN void _M2_M2CaseList_init (int argc, char *argv[], char *envp[]);
     100              : EXTERN void _M2_PCSymBuild_init (int argc, char *argv[], char *envp[]);
     101              : EXTERN void _M2_PCBuild_init (int argc, char *argv[], char *envp[]);
     102              : EXTERN void _M2_Sets_init (int argc, char *argv[], char *envp[]);
     103              : EXTERN void _M2_dtoa_init (int argc, char *argv[], char *envp[]);
     104              : EXTERN void _M2_ldtoa_init (int argc, char *argv[], char *envp[]);
     105              : EXTERN void _M2_M2Check_init (int argc, char *argv[], char *envp[]);
     106              : EXTERN void _M2_M2SSA_init (int argc, char *argv[], char *envp[]);
     107              : EXTERN void _M2_M2SymInit_init (int argc, char *argv[], char *envp[]);
     108              : EXTERN void _M2_M2StateCheck_init (int argc, char *argv[], char *envp[]);
     109              : EXTERN void _M2_P3Build_init (int argc, char *argv[], char *envp[]);
     110              : EXTERN void _M2_M2Diagnostic_init (int argc, char *argv[], char *envp[]);
     111              : EXTERN void _M2_M2StackSpell_init (int argc, char *argv[], char *envp[]);
     112              : EXTERN void exit (int);
     113              : EXTERN void M2Comp_compile (const char *filename);
     114              : EXTERN void RTExceptions_DefaultErrorCatch (void);
     115              : 
     116              : 
     117              : /* FrontEndInit initialize the modules.  This is a global
     118              :    initialization and it is called once.  */
     119              : 
     120              : void
     121        14952 : init_FrontEndInit (void)
     122              : {
     123        14952 :   _M2_Debug_init (0, NULL, NULL);
     124        14952 :   _M2_RTExceptions_init (0, NULL, NULL);
     125        14952 :   _M2_M2Defaults_init (0, NULL, NULL);
     126        14952 :   _M2_Environment_init (0, NULL, NULL);
     127        14952 :   _M2_M2EXCEPTION_init (0, NULL, NULL);
     128        14952 :   _M2_M2Dependent_init (0, NULL, NULL);
     129        14952 :   _M2_M2RTS_init (0, NULL, NULL);
     130        14952 :   _M2_SysExceptions_init (0, NULL, NULL);
     131        14952 :   _M2_M2Diagnostic_init (0, NULL, NULL);
     132        14952 :   _M2_DynamicStrings_init (0, NULL, NULL);
     133        14952 :   _M2_Assertion_init (0, NULL, NULL);
     134        14952 :   _M2_FormatStrings_init (0, NULL, NULL);
     135        14952 :   _M2_FIO_init (0, NULL, NULL);
     136        14952 :   _M2_SFIO_init (0, NULL, NULL);
     137        14952 :   _M2_SArgs_init (0, NULL, NULL);
     138        14952 :   _M2_Lists_init (0, NULL, NULL);
     139        14952 :   _M2_UnixArgs_init (0, NULL, NULL);
     140        14952 :   _M2_Args_init (0, NULL, NULL);
     141        14952 :   _M2_wrapc_init (0, NULL, NULL);
     142        14952 :   _M2_TimeString_init (0, NULL, NULL);
     143        14952 :   _M2_IO_init (0, NULL, NULL);
     144        14952 :   _M2_StdIO_init (0, NULL, NULL);
     145        14952 :   _M2_CmdArgs_init (0, NULL, NULL);
     146        14952 :   _M2_FpuIO_init (0, NULL, NULL);
     147        14952 :   _M2_SysStorage_init (0, NULL, NULL);
     148        14952 :   _M2_Storage_init (0, NULL, NULL);
     149        14952 :   _M2_StrIO_init (0, NULL, NULL);
     150        14952 :   _M2_StrLib_init (0, NULL, NULL);
     151        14952 :   _M2_dtoa_init (0, NULL, NULL);
     152        14952 :   _M2_ldtoa_init (0, NULL, NULL);
     153        14952 :   _M2_DynamicPath_init (0, NULL, NULL);
     154        14952 :   _M2_PathName_init (0, NULL, NULL);
     155        14952 :   _M2_M2Search_init (0, NULL, NULL);
     156        14952 :   _M2_M2Options_init (0, NULL, NULL);
     157        14952 : }
     158              : 
     159              : /* PerCompilationInit initialize the modules before compiling,
     160              :    filename.  This is called every time we compile a new file.  */
     161              : 
     162              : void
     163        14952 : init_PerCompilationInit (const char *filename)
     164              : {
     165        14952 :   _M2_M2Bitset_init (0, NULL, NULL);
     166        14952 :   _M2_M2Preprocess_init (0, NULL, NULL);
     167        14952 :   _M2_M2Error_init (0, NULL, NULL);
     168        14952 :   _M2_Indexing_init (0, NULL, NULL);
     169        14952 :   _M2_NameKey_init (0, NULL, NULL);
     170        14952 :   _M2_NumberIO_init (0, NULL, NULL);
     171        14952 :   _M2_M2Debug_init (0, NULL, NULL);
     172        14952 :   _M2_M2Batch_init (0, NULL, NULL);
     173        14952 :   _M2_M2ALU_init (0, NULL, NULL);
     174        14952 :   _M2_M2Comp_init (0, NULL, NULL);
     175        14952 :   _M2_M2LexBuf_init (0, NULL, NULL);
     176        14952 :   _M2_SymbolTable_init (0, NULL, NULL);
     177        14952 :   _M2_M2Base_init (0, NULL, NULL);
     178        14952 :   _M2_M2Quads_init (0, NULL, NULL);
     179        14952 :   _M2_SymbolKey_init (0, NULL, NULL);
     180        14952 :   _M2_FifoQueue_init (0, NULL, NULL);
     181        14952 :   _M2_M2Reserved_init (0, NULL, NULL);
     182        14952 :   _M2_M2Const_init (0, NULL, NULL);
     183        14952 :   _M2_P1SymBuild_init (0, NULL, NULL);
     184        14952 :   _M2_P2SymBuild_init (0, NULL, NULL);
     185        14952 :   _M2_P3SymBuild_init (0, NULL, NULL);
     186        14952 :   _M2_M2System_init (0, NULL, NULL);
     187        14952 :   _M2_M2BasicBlock_init (0, NULL, NULL);
     188        14952 :   _M2_M2Pass_init (0, NULL, NULL);
     189        14952 :   _M2_M2Code_init (0, NULL, NULL);
     190        14952 :   _M2_M2AsmUtil_init (0, NULL, NULL);
     191        14952 :   _M2_M2FileName_init (0, NULL, NULL);
     192        14952 :   _M2_M2Students_init (0, NULL, NULL);
     193        14952 :   _M2_StrCase_init (0, NULL, NULL);
     194        14952 :   _M2_SymbolConversion_init (0, NULL, NULL);
     195        14952 :   _M2_M2GCCDeclare_init (0, NULL, NULL);
     196        14952 :   _M2_M2GenGCC_init (0, NULL, NULL);
     197        14952 :   _M2_M2Range_init (0, NULL, NULL);
     198        14952 :   _M2_M2Swig_init (0, NULL, NULL);
     199        14952 :   _M2_M2MetaError_init (0, NULL, NULL);
     200        14952 :   _M2_M2CaseList_init (0, NULL, NULL);
     201        14952 :   _M2_PCSymBuild_init (0, NULL, NULL);
     202        14952 :   _M2_PCBuild_init (0, NULL, NULL);
     203        14952 :   _M2_Sets_init (0, NULL, NULL);
     204        14952 :   _M2_M2SSA_init (0, NULL, NULL);
     205        14952 :   _M2_M2SymInit_init (0, NULL, NULL);
     206        14952 :   _M2_M2Check_init (0, NULL, NULL);
     207        14952 :   _M2_M2LangDump_init (0, NULL, NULL);
     208        14952 :   _M2_M2StateCheck_init (0, NULL, NULL);
     209        14952 :   _M2_M2StackSpell_init (0, NULL, NULL);
     210        14952 :   _M2_P3Build_init (0, NULL, NULL);
     211        14952 :   M2Comp_compile (filename);
     212        13418 : }
        

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.