Ver código fonte

Merge cs_check_fpu_exception part of commit 39813
Adapt ppudump to added entry to tlocalswitch enum type.

git-svn-id: branches/fixes_3_2@45984 -

pierre 5 anos atrás
pai
commit
80553119b5

+ 1 - 1
compiler/globtype.pas

@@ -156,7 +156,7 @@ interface
          cs_full_boolean_eval,cs_typed_const_writable,cs_allow_enum_calc,
          cs_do_inline,cs_fpu_fwait,cs_ieee_errors,
          cs_check_low_addr_load,cs_imported_data,
-         cs_excessprecision,
+         cs_excessprecision,cs_check_fpu_exceptions,
          { mmx }
          cs_mmx,cs_mmx_saturation,
          { parser }

+ 5 - 0
compiler/options.pas

@@ -1191,6 +1191,11 @@ begin
                            include(init_settings.moduleswitches,cs_fp_emulation);
                        end;
 {$endif cpufpemu}
+                    'E' :
+                      If UnsetBool(More, j, opt, false) then
+                        exclude(init_settings.localswitches,cs_check_fpu_exceptions)
+                      Else
+                        include(init_settings.localswitches,cs_check_fpu_exceptions);
                     'f' :
                       begin
                         s:=upper(copy(more,j+1,length(more)-j));

+ 7 - 0
compiler/scandir.pas

@@ -436,6 +436,12 @@ unit scandir;
       end;
 
 
+    procedure dir_checkfpuexceptions;
+      begin
+        do_localswitch(cs_check_fpu_exceptions);
+      end;
+
+
     procedure dir_objectchecks;
       begin
         do_localswitch(cs_check_object);
@@ -1907,6 +1913,7 @@ unit scandir;
         AddDirective('BOOLEVAL',directive_all, @dir_booleval);
         AddDirective('BITPACKING',directive_all, @dir_bitpacking);
         AddDirective('CALLING',directive_all, @dir_calling);
+        AddDirective('CHECKFPUEXCEPTIONS',directive_all, @dir_checkfpuexceptions);
         AddDirective('CHECKLOWADDRLOADS',directive_all, @dir_checklowaddrloads);
         AddDirective('CHECKPOINTER',directive_all, @dir_checkpointer);
         AddDirective('CODEALIGN',directive_all, @dir_codealign);

+ 1 - 1
compiler/utils/ppuutils/ppudump.pp

@@ -2211,7 +2211,7 @@ const
         'Check low address loading', {cs_check_low_addr_load}
         'Imported data', {cs_imported_data}
         'Excess precision', {cs_excessprecision}
-        // 'Check fpu exceptions', {cs_check_fpu_exceptions} {not yet merged}
+        'Check fpu exceptions', {cs_check_fpu_exceptions}
         // 'Check all case coverage', {cs_check_all_case_coverage} {not yet merged}
          { mmx }
         'Allow MMX instructions', {cs_mmx}