瀏覽代碼

+ introduced default_settings record to enable compiler unit users to turn off default switches

git-svn-id: trunk@10995 -
florian 17 年之前
父節點
當前提交
e9543b90d0
共有 2 個文件被更改,包括 75 次插入62 次删除
  1. 0 1
      compiler/compiler.pas
  2. 75 61
      compiler/globals.pas

+ 0 - 1
compiler/compiler.pas

@@ -114,7 +114,6 @@ uses
 
 
 function Compile(const cmd:string):longint;
 function Compile(const cmd:string):longint;
 
 
-
 implementation
 implementation
 
 
 uses
 uses

+ 75 - 61
compiler/globals.pas

@@ -48,26 +48,26 @@ interface
       globtype,version,systems;
       globtype,version,systems;
 
 
     const
     const
-       delphimodeswitches : tmodeswitches=
+       delphimodeswitches =
          [m_delphi,m_all,m_class,m_objpas,m_result,m_string_pchar,
          [m_delphi,m_all,m_class,m_objpas,m_result,m_string_pchar,
           m_pointer_2_procedure,m_autoderef,m_tp_procvar,m_initfinal,m_default_ansistring,
           m_pointer_2_procedure,m_autoderef,m_tp_procvar,m_initfinal,m_default_ansistring,
           m_out,m_default_para,m_duplicate_names,m_hintdirective,m_add_pointer,
           m_out,m_default_para,m_duplicate_names,m_hintdirective,m_add_pointer,
           m_property,m_default_inline,m_except];
           m_property,m_default_inline,m_except];
-       fpcmodeswitches    : tmodeswitches=
+       fpcmodeswitches =
          [m_fpc,m_all,m_string_pchar,m_nested_comment,m_repeat_forward,
          [m_fpc,m_all,m_string_pchar,m_nested_comment,m_repeat_forward,
           m_cvar_support,m_initfinal,m_add_pointer,m_hintdirective,
           m_cvar_support,m_initfinal,m_add_pointer,m_hintdirective,
           m_property,m_default_inline];
           m_property,m_default_inline];
-       objfpcmodeswitches : tmodeswitches=
+       objfpcmodeswitches =
          [m_objfpc,m_fpc,m_all,m_class,m_objpas,m_result,m_string_pchar,m_nested_comment,
          [m_objfpc,m_fpc,m_all,m_class,m_objpas,m_result,m_string_pchar,m_nested_comment,
           m_repeat_forward,m_cvar_support,m_initfinal,m_add_pointer,m_out,m_default_para,m_hintdirective,
           m_repeat_forward,m_cvar_support,m_initfinal,m_add_pointer,m_out,m_default_para,m_hintdirective,
           m_property,m_default_inline,m_except];
           m_property,m_default_inline,m_except];
-       tpmodeswitches     : tmodeswitches=
+       tpmodeswitches =
          [m_tp7,m_all,m_tp_procvar,m_duplicate_names];
          [m_tp7,m_all,m_tp_procvar,m_duplicate_names];
 {$ifdef gpc_mode}
 {$ifdef gpc_mode}
-       gpcmodeswitches    : tmodeswitches=
+       gpcmodeswitches =
          [m_gpc,m_all,m_tp_procvar];
          [m_gpc,m_all,m_tp_procvar];
 {$endif}
 {$endif}
-       macmodeswitches : tmodeswitches=
+       macmodeswitches =
          [m_mac,m_all,m_result,m_cvar_support,m_mac_procvar];
          [m_mac,m_all,m_result,m_cvar_support,m_mac_procvar];
 
 
        { maximum nesting of routines }
        { maximum nesting of routines }
@@ -307,6 +307,74 @@ interface
        { actual values are defined in ncgutil.pas }
        { actual values are defined in ncgutil.pas }
        nroftrashvalues = 4;
        nroftrashvalues = 4;
 
 
+    const
+      default_settings : TSettings = (
+        globalswitches : [cs_check_unit_name,cs_link_static];
+        moduleswitches : [cs_extsyntax,cs_implicit_exceptions];
+        localswitches : [cs_check_io,cs_typed_const_writable];
+        modeswitches : fpcmodeswitches;
+        optimizerswitches : [];
+        debugswitches : [];
+        setalloc : 0;
+        packenum : 4;
+        alignment : (
+          procalign : 0;
+          loopalign : 0;
+          jumpalign : 0;
+          constalignmin : 0;
+          constalignmax : 0;
+          varalignmin : 0;
+          varalignmax : 0;
+          localalignmin : 0;
+          localalignmax : 0;
+          recordalignmin : 0;
+          recordalignmax : 0;
+          maxCrecordalign : 0;
+        );
+{$ifdef i386}
+        cputype : cpu_Pentium;
+        optimizecputype : cpu_Pentium3;
+        fputype : fpu_x87;
+{$endif i386}
+{$ifdef m68k}
+        cputype : cpu_MC68020;
+        fputype : fpu_soft;
+{$endif m68k}
+{$ifdef powerpc}
+        cputype : cpu_PPC604;
+        optimizecputype : cpu_ppc7400;
+        fputype : fpu_standard;
+{$endif powerpc}
+{$ifdef POWERPC64}
+        cputype : cpu_PPC970;
+        optimizecputype : cpu_ppc970;
+        fputype : fpu_standard;
+{$endif POWERPC64}
+{$ifdef sparc}
+        cputype : cpu_SPARC_V8;
+        fputype : fpu_hard;
+{$endif sparc}
+{$ifdef arm}
+        cputype : cpu_armv3;
+        fputype : fpu_fpa;
+{$endif arm}
+{$ifdef x86_64}
+        cputype : cpu_athlon64;
+        fputype : fpu_sse64;
+{$endif x86_64}
+{$ifdef avr}
+        cputype : cpuinfo.cpu_avr;
+        fputype : fpu_none;
+{$endif avr}
+        asmmode : asmmode_standard;
+        interfacetype : it_interfacecom;
+        defproccall : pocall_default;
+        sourcecodepage : '8859-1';
+        packrecords     : 0;
+        maxfpuregisters : 0;
+        minfpconstprec : s32real;
+      );
+
     var
     var
       starttime  : real;
       starttime  : real;
 
 
@@ -1239,61 +1307,7 @@ implementation
         apptype:=app_cui;
         apptype:=app_cui;
 
 
         { Init values }
         { Init values }
-        init_settings.modeswitches:=fpcmodeswitches;
-        init_settings.localswitches:=[cs_check_io,cs_typed_const_writable];
-        init_settings.moduleswitches:=[cs_extsyntax,cs_implicit_exceptions];
-        init_settings.globalswitches:=[cs_check_unit_name,cs_link_static];
-        init_settings.optimizerswitches:=[];
-        init_settings.debugswitches:=[];
-        init_settings.sourcecodepage:='8859-1';
-        init_settings.packenum:=4;
-        init_settings.setalloc:=0;
-        fillchar(init_settings.alignment,sizeof(talignmentinfo),0);
-        init_settings.minfpconstprec:=s32real;
-        { might be overridden later }
-        init_settings.asmmode:=asmmode_standard;
-        init_settings.cputype:=cpu_none;
-        init_settings.optimizecputype:=cpu_none;
-        init_settings.fputype:=fpu_none;
-        init_settings.interfacetype:=it_interfacecom;
-        init_settings.defproccall:=pocall_default;
-
-        { Target specific defaults, these can override previous default options }
-{$ifdef i386}
-        init_settings.cputype:=cpu_Pentium;
-        init_settings.optimizecputype:=cpu_Pentium3;
-        init_settings.fputype:=fpu_x87;
-{$endif i386}
-{$ifdef m68k}
-        init_settings.cputype:=cpu_MC68020;
-        init_settings.fputype:=fpu_soft;
-{$endif m68k}
-{$ifdef powerpc}
-        init_settings.cputype:=cpu_PPC604;
-        init_settings.optimizecputype:=cpu_ppc7400;
-        init_settings.fputype:=fpu_standard;
-{$endif powerpc}
-{$ifdef POWERPC64}
-        init_settings.cputype:=cpu_PPC970;
-        init_settings.optimizecputype:=cpu_ppc970;
-        init_settings.fputype:=fpu_standard;
-{$endif POWERPC64}
-{$ifdef sparc}
-        init_settings.cputype:=cpu_SPARC_V8;
-        init_settings.fputype:=fpu_hard;
-{$endif sparc}
-{$ifdef arm}
-        init_settings.cputype:=cpu_armv3;
-        init_settings.fputype:=fpu_fpa;
-{$endif arm}
-{$ifdef x86_64}
-        init_settings.cputype:=cpu_athlon64;
-        init_settings.fputype:=fpu_sse64;
-{$endif x86_64}
-{$ifdef avr}
-        init_settings.cputype:=cpuinfo.cpu_avr;
-        init_settings.fputype:=fpu_none;
-{$endif avr}
+        init_settings:=default_settings;
         if init_settings.optimizecputype=cpu_none then
         if init_settings.optimizecputype=cpu_none then
           init_settings.optimizecputype:=init_settings.cputype;
           init_settings.optimizecputype:=init_settings.cputype;