1 /* top.c -- Implementation File (module.c template V1.0)
2 Copyright (C) 1995, 1996, 1997, 1999, 2001, 2003
3 Free Software Foundation, Inc.
4 Contributed by James Craig Burley.
6 This file is part of GNU Fortran.
8 GNU Fortran 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 2, or (at your option)
13 GNU Fortran is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with GNU Fortran; see the file COPYING. If not, write to
20 the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
27 The GNU Fortran Front End.
62 /* Externals defined here. */
64 bool ffe_is_do_internal_checks_
= FALSE
;
65 bool ffe_is_90_
= FFETARGET_defaultIS_90
;
66 bool ffe_is_automatic_
= FFETARGET_defaultIS_AUTOMATIC
;
67 bool ffe_is_backslash_
= FFETARGET_defaultIS_BACKSLASH
;
68 bool ffe_is_emulate_complex_
= FALSE
;
69 bool ffe_is_underscoring_
= FFETARGET_defaultEXTERNAL_UNDERSCORED
70 || FFETARGET_defaultUNDERSCORED_EXTERNAL_UNDERSCORED
;
71 bool ffe_is_second_underscore_
= FFETARGET_defaultUNDERSCORED_EXTERNAL_UNDERSCORED
;
72 bool ffe_is_debug_kludge_
= FALSE
;
73 bool ffe_is_dollar_ok_
= FFETARGET_defaultIS_DOLLAR_OK
;
74 bool ffe_is_f2c_
= FFETARGET_defaultIS_F2C
;
75 bool ffe_is_f2c_library_
= FFETARGET_defaultIS_F2C_LIBRARY
;
76 bool ffe_is_ffedebug_
= FALSE
;
77 bool ffe_is_flatten_arrays_
= FALSE
;
78 bool ffe_is_free_form_
= FFETARGET_defaultIS_FREE_FORM
;
79 bool ffe_is_globals_
= TRUE
;
80 bool ffe_is_init_local_zero_
= FFETARGET_defaultIS_INIT_LOCAL_ZERO
;
81 bool ffe_is_mainprog_
; /* TRUE if current prog unit known to be
83 bool ffe_is_onetrip_
= FALSE
;
84 bool ffe_is_silent_
= TRUE
;
85 bool ffe_is_typeless_boz_
= FALSE
;
86 bool ffe_is_pedantic_
= FFETARGET_defaultIS_PEDANTIC
;
87 bool ffe_is_saveall_
; /* TRUE if mainprog or SAVE (no args) seen. */
88 bool ffe_is_ugly_args_
= TRUE
;
89 bool ffe_is_ugly_assign_
= FALSE
; /* Try and store pointer to ASSIGN labels in INTEGER vars. */
90 bool ffe_is_ugly_assumed_
= FALSE
; /* DIMENSION X([...,]1) => DIMENSION X([...,]*) */
91 bool ffe_is_ugly_comma_
= FALSE
;
92 bool ffe_is_ugly_complex_
= FALSE
;
93 bool ffe_is_ugly_init_
= TRUE
;
94 bool ffe_is_ugly_logint_
= FALSE
;
95 bool ffe_is_version_
= FALSE
;
96 bool ffe_is_vxt_
= FALSE
;
97 bool ffe_is_warn_globals_
= TRUE
;
98 bool ffe_is_warn_implicit_
= FALSE
;
99 bool ffe_is_warn_surprising_
= FALSE
;
100 bool ffe_is_zeros_
= FALSE
;
101 ffeCase ffe_case_intrin_
= FFETARGET_defaultCASE_INTRIN
;
102 ffeCase ffe_case_match_
= FFETARGET_defaultCASE_MATCH
;
103 ffeCase ffe_case_source_
= FFETARGET_defaultCASE_SOURCE
;
104 ffeCase ffe_case_symbol_
= FFETARGET_defaultCASE_SYMBOL
;
105 ffeIntrinsicState ffe_intrinsic_state_badu77_
= FFE_intrinsicstateENABLED
;
106 ffeIntrinsicState ffe_intrinsic_state_gnu_
= FFE_intrinsicstateENABLED
;
107 ffeIntrinsicState ffe_intrinsic_state_f2c_
= FFE_intrinsicstateENABLED
;
108 ffeIntrinsicState ffe_intrinsic_state_f90_
= FFE_intrinsicstateENABLED
;
109 ffeIntrinsicState ffe_intrinsic_state_mil_
= FFE_intrinsicstateENABLED
;
110 ffeIntrinsicState ffe_intrinsic_state_unix_
= FFE_intrinsicstateENABLED
;
111 ffeIntrinsicState ffe_intrinsic_state_vxt_
= FFE_intrinsicstateENABLED
;
112 int ffe_fixed_line_length_
= FFETARGET_defaultFIXED_LINE_LENGTH
;
113 mallocPool ffe_file_pool_
= NULL
;
114 mallocPool ffe_any_unit_pool_
= NULL
;
115 mallocPool ffe_program_unit_pool_
= NULL
;
116 ffeCounter ffe_count_0
= 0;
117 ffeCounter ffe_count_1
= 0;
118 ffeCounter ffe_count_2
= 0;
119 ffeCounter ffe_count_3
= 0;
120 ffeCounter ffe_count_4
= 0;
121 bool ffe_in_0
= FALSE
;
122 bool ffe_in_1
= FALSE
;
123 bool ffe_in_2
= FALSE
;
124 bool ffe_in_3
= FALSE
;
125 bool ffe_in_4
= FALSE
;
127 /* Simple definitions and enumerations. */
130 /* Internal typedefs. */
133 /* Private include files. */
136 /* Internal structure definitions. */
139 /* Static objects accessed by functions in this module. */
142 /* Static functions (internal). */
144 static bool ffe_is_digit_string_ (const char *s
);
146 /* Internal macros. */
149 ffe_is_digit_string_ (const char *s
)
153 for (p
= s
; ISDIGIT (*p
); ++p
)
156 return (p
!= s
) && (*p
== '\0');
159 /* Get ready for options handling. */
161 ffe_init_options (unsigned int argc ATTRIBUTE_UNUSED
,
162 const char **argv ATTRIBUTE_UNUSED
)
164 /* Set default options for Fortran. */
165 flag_move_all_movables
= 1;
166 flag_reduce_all_givs
= 1;
167 flag_argument_noalias
= 2;
168 flag_merge_constants
= 2;
170 flag_complex_divide_method
= 1;
175 /* Handle command-line options. Returns 0 if unrecognized, 1 if
176 recognized and handled. */
178 ffe_handle_option (size_t scode
, const char *arg
, int value
)
180 enum opt_code code
= (enum opt_code
) scode
;
188 ffe_set_is_version (TRUE
);
189 ffe_set_is_do_internal_checks (TRUE
);
193 ffe_set_is_onetrip (value
);
194 ffe_set_is_ugly_assumed (value
);
198 ffe_set_is_backslash (value
);
200 ffe_set_is_typeless_boz (FALSE
);
204 ffe_set_is_90 (value
);
208 ffe_set_is_automatic (value
);
212 ffe_set_is_dollar_ok (value
);
216 ffe_set_is_f2c (value
);
219 case OPT_ff2c_library
:
220 ffe_set_is_f2c_library (value
);
223 case OPT_fflatten_arrays
:
224 ffe_set_is_f2c_library (value
);
228 ffe_set_is_free_form (value
);
231 case OPT_ffixed_form
:
232 ffe_set_is_free_form (!value
);
236 ffe_set_is_pedantic (value
);
240 ffe_set_is_vxt (value
);
243 case OPT_fvxt_not_f90
:
244 warning ("-fvxt-not-f90 no longer supported -- try -fvxt");
247 case OPT_ff90_not_vxt
:
248 warning ("-ff90-not-vxt no longer supported -- try -fno-vxt -ff90");
252 ffe_set_is_ugly_args (value
);
253 ffe_set_is_ugly_assign (value
);
254 ffe_set_is_ugly_assumed (value
);
255 ffe_set_is_ugly_comma (value
);
256 ffe_set_is_ugly_complex (value
);
257 ffe_set_is_ugly_init (value
);
258 ffe_set_is_ugly_logint (value
);
262 ffe_set_is_ugly_args (value
);
265 case OPT_fugly_assign
:
266 ffe_set_is_ugly_assign (value
);
269 case OPT_fugly_assumed
:
270 ffe_set_is_ugly_assumed (value
);
273 case OPT_fugly_comma
:
274 ffe_set_is_ugly_comma (value
);
277 case OPT_fugly_complex
:
278 ffe_set_is_ugly_complex (value
);
282 ffe_set_is_ugly_init (value
);
285 case OPT_fugly_logint
:
286 ffe_set_is_ugly_logint (value
);
290 ffe_set_is_ffedebug (value
);
293 case OPT_finit_local_zero
:
294 ffe_set_is_init_local_zero (value
);
297 case OPT_femulate_complex
:
298 ffe_set_is_emulate_complex (value
);
302 ffe_set_is_backslash (value
);
305 case OPT_funderscoring
:
306 ffe_set_is_underscoring (value
);
309 case OPT_fsecond_underscore
:
310 ffe_set_is_second_underscore (value
);
314 ffe_set_is_zeros (value
);
317 case OPT_fdebug_kludge
:
318 warning ("-fdebug-kludge is disabled, use normal debugging flags");
322 ffe_set_is_onetrip (value
);
326 ffe_set_is_silent (value
);
330 ffe_set_is_globals (value
);
333 case OPT_ffortran_bounds_check
:
334 flag_bounds_check
= value
;
337 case OPT_ftypeless_boz
:
338 ffe_set_is_typeless_boz (value
);
341 case OPT_fintrin_case_initcap
:
342 ffe_set_case_intrin (FFE_caseINITCAP
);
345 case OPT_fintrin_case_lower
:
346 ffe_set_case_intrin (FFE_caseLOWER
);
349 case OPT_fintrin_case_upper
:
350 ffe_set_case_intrin (FFE_caseUPPER
);
353 case OPT_fintrin_case_any
:
354 ffe_set_case_intrin (FFE_caseNONE
);
357 case OPT_fmatch_case_initcap
:
358 ffe_set_case_match (FFE_caseINITCAP
);
361 case OPT_fmatch_case_lower
:
362 ffe_set_case_match (FFE_caseLOWER
);
365 case OPT_fmatch_case_upper
:
366 ffe_set_case_match (FFE_caseUPPER
);
369 case OPT_fmatch_case_any
:
370 ffe_set_case_match (FFE_caseNONE
);
373 case OPT_fsource_case_lower
:
374 ffe_set_case_source (FFE_caseLOWER
);
377 case OPT_fsource_case_preserve
:
378 ffe_set_case_match (FFE_caseNONE
);
381 case OPT_fsource_case_upper
:
382 ffe_set_case_source (FFE_caseUPPER
);
385 case OPT_fsymbol_case_initcap
:
386 ffe_set_case_symbol (FFE_caseINITCAP
);
389 case OPT_fsymbol_case_lower
:
390 ffe_set_case_symbol (FFE_caseLOWER
);
393 case OPT_fsymbol_case_upper
:
394 ffe_set_case_symbol (FFE_caseUPPER
);
397 case OPT_fsymbol_case_any
:
398 ffe_set_case_symbol (FFE_caseNONE
);
401 case OPT_fcase_strict_upper
:
402 ffe_set_case_intrin (FFE_caseUPPER
);
403 ffe_set_case_match (FFE_caseUPPER
);
404 ffe_set_case_source (FFE_caseNONE
);
405 ffe_set_case_symbol (FFE_caseUPPER
);
408 case OPT_fcase_strict_lower
:
409 ffe_set_case_intrin (FFE_caseLOWER
);
410 ffe_set_case_match (FFE_caseLOWER
);
411 ffe_set_case_source (FFE_caseNONE
);
412 ffe_set_case_symbol (FFE_caseLOWER
);
415 case OPT_fcase_initcap
:
416 ffe_set_case_intrin (FFE_caseINITCAP
);
417 ffe_set_case_match (FFE_caseINITCAP
);
418 ffe_set_case_source (FFE_caseNONE
);
419 ffe_set_case_symbol (FFE_caseINITCAP
);
422 case OPT_fcase_upper
:
423 ffe_set_case_intrin (FFE_caseNONE
);
424 ffe_set_case_match (FFE_caseNONE
);
425 ffe_set_case_source (FFE_caseUPPER
);
426 ffe_set_case_symbol (FFE_caseNONE
);
429 case OPT_fcase_lower
:
430 ffe_set_case_intrin (FFE_caseNONE
);
431 ffe_set_case_match (FFE_caseNONE
);
432 ffe_set_case_source (FFE_caseLOWER
);
433 ffe_set_case_symbol (FFE_caseNONE
);
436 case OPT_fcase_preserve
:
437 ffe_set_case_intrin (FFE_caseNONE
);
438 ffe_set_case_match (FFE_caseNONE
);
439 ffe_set_case_source (FFE_caseNONE
);
440 ffe_set_case_symbol (FFE_caseNONE
);
443 case OPT_fbadu77_intrinsics_delete
:
444 ffe_set_intrinsic_state_badu77 (FFE_intrinsicstateDELETED
);
447 case OPT_fbadu77_intrinsics_hide
:
448 ffe_set_intrinsic_state_badu77 (FFE_intrinsicstateHIDDEN
);
451 case OPT_fbadu77_intrinsics_disable
:
452 ffe_set_intrinsic_state_badu77 (FFE_intrinsicstateDISABLED
);
455 case OPT_fbadu77_intrinsics_enable
:
456 ffe_set_intrinsic_state_badu77 (FFE_intrinsicstateENABLED
);
459 case OPT_fgnu_intrinsics_delete
:
460 ffe_set_intrinsic_state_gnu (FFE_intrinsicstateDELETED
);
463 case OPT_fgnu_intrinsics_hide
:
464 ffe_set_intrinsic_state_gnu (FFE_intrinsicstateHIDDEN
);
467 case OPT_fgnu_intrinsics_disable
:
468 ffe_set_intrinsic_state_gnu (FFE_intrinsicstateDISABLED
);
471 case OPT_fgnu_intrinsics_enable
:
472 ffe_set_intrinsic_state_gnu (FFE_intrinsicstateENABLED
);
475 case OPT_ff2c_intrinsics_delete
:
476 ffe_set_intrinsic_state_f2c (FFE_intrinsicstateDELETED
);
479 case OPT_ff2c_intrinsics_hide
:
480 ffe_set_intrinsic_state_f2c (FFE_intrinsicstateHIDDEN
);
483 case OPT_ff2c_intrinsics_disable
:
484 ffe_set_intrinsic_state_f2c (FFE_intrinsicstateDISABLED
);
487 case OPT_ff2c_intrinsics_enable
:
488 ffe_set_intrinsic_state_f2c (FFE_intrinsicstateENABLED
);
491 case OPT_ff90_intrinsics_delete
:
492 ffe_set_intrinsic_state_f90 (FFE_intrinsicstateDELETED
);
495 case OPT_ff90_intrinsics_hide
:
496 ffe_set_intrinsic_state_f90 (FFE_intrinsicstateHIDDEN
);
499 case OPT_ff90_intrinsics_disable
:
500 ffe_set_intrinsic_state_f90 (FFE_intrinsicstateDISABLED
);
503 case OPT_ff90_intrinsics_enable
:
504 ffe_set_intrinsic_state_f90 (FFE_intrinsicstateENABLED
);
507 case OPT_fmil_intrinsics_delete
:
508 ffe_set_intrinsic_state_mil (FFE_intrinsicstateDELETED
);
511 case OPT_fmil_intrinsics_hide
:
512 ffe_set_intrinsic_state_mil (FFE_intrinsicstateHIDDEN
);
515 case OPT_fmil_intrinsics_disable
:
516 ffe_set_intrinsic_state_mil (FFE_intrinsicstateDISABLED
);
519 case OPT_fmil_intrinsics_enable
:
520 ffe_set_intrinsic_state_mil (FFE_intrinsicstateENABLED
);
523 case OPT_funix_intrinsics_delete
:
524 ffe_set_intrinsic_state_unix (FFE_intrinsicstateDELETED
);
527 case OPT_funix_intrinsics_hide
:
528 ffe_set_intrinsic_state_unix (FFE_intrinsicstateHIDDEN
);
531 case OPT_funix_intrinsics_disable
:
532 ffe_set_intrinsic_state_unix (FFE_intrinsicstateDISABLED
);
535 case OPT_funix_intrinsics_enable
:
536 ffe_set_intrinsic_state_unix (FFE_intrinsicstateENABLED
);
539 case OPT_fvxt_intrinsics_delete
:
540 ffe_set_intrinsic_state_vxt (FFE_intrinsicstateDELETED
);
543 case OPT_fvxt_intrinsics_hide
:
544 ffe_set_intrinsic_state_vxt (FFE_intrinsicstateHIDDEN
);
547 case OPT_fvxt_intrinsics_disable
:
548 ffe_set_intrinsic_state_vxt (FFE_intrinsicstateDISABLED
);
551 case OPT_fvxt_intrinsics_enable
:
552 ffe_set_intrinsic_state_vxt (FFE_intrinsicstateENABLED
);
555 case OPT_ffixed_line_length_
:
556 if (strcmp (arg
, "none") == 0)
557 ffe_set_fixed_line_length (0);
558 else if (ffe_is_digit_string_ (arg
))
559 ffe_set_fixed_line_length (atol (arg
));
568 case OPT_fpreprocessed
:
569 /* These are for cpp. */
573 ffe_set_is_warn_globals (value
);
577 ffe_set_is_warn_implicit (value
);
580 case OPT_Wsurprising
:
581 ffe_set_is_warn_surprising (value
);
586 /* We save the value of warn_uninitialized, since if they put
587 -Wuninitialized on the command line, we need to generate a
588 warning about not using it without also specifying -O. */
591 if (warn_uninitialized
!= 1)
592 warn_uninitialized
= 2;
595 warn_uninitialized
= 0;
599 ffecom_decode_include_option (arg
);
606 /* Run the FFE on a source file (not an INCLUDEd file).
608 Runs the whole shebang.
610 Prepare and invoke the appropriate lexer. */
613 ffe_file (ffewhereFile wf
, FILE *f
)
616 ffelex_set_handler ((ffelexHandler
) ffest_first
);
617 ffewhere_file_set (wf
, TRUE
, 0);
618 if (ffe_is_free_form_
)
619 ffelex_file_free (wf
, f
);
621 ffelex_file_fixed (wf
, f
);
626 /* ffe_init_0 -- Initialize the FFE per image invocation
630 Performs per-image invocation. */
661 /* ffe_init_1 -- Initialize the FFE per source file
665 Performs per-source-file invocation (not including INCLUDEd files). */
673 assert (ffe_file_pool_
== NULL
);
674 ffe_file_pool_
= malloc_pool_new ("File", malloc_pool_image (), 1024);
701 /* ffe_init_2 -- Initialize the FFE per outer program unit
705 Performs per-program-unit invocation. */
713 assert (ffe_program_unit_pool_
== NULL
);
714 ffe_program_unit_pool_
= malloc_pool_new ("Program unit", ffe_file_pool_
, 1024);
715 ffe_is_mainprog_
= FALSE
;
716 ffe_is_saveall_
= !ffe_is_automatic_
;
743 /* ffe_init_3 -- Initialize the FFE per any program unit
747 Performs per-any-unit initialization; does NOT do
748 per-statement-function-definition initialization (i.e. the chain
749 of inits, from 0-3, breaks here; level 4 must be invoked independently). */
757 assert (ffe_any_unit_pool_
== NULL
);
758 ffe_any_unit_pool_
= malloc_pool_new ("Any unit", ffe_program_unit_pool_
, 1024);
783 /* ffe_init_4 -- Initialize the FFE per statement function definition
816 /* ffe_terminate_0 -- Terminate the FFE prior to image termination
818 ffe_terminate_0(); */
821 ffe_terminate_0 (void)
826 ffebad_terminate_0 ();
827 ffebit_terminate_0 ();
828 ffebld_terminate_0 ();
829 ffecom_terminate_0 ();
830 ffedata_terminate_0 ();
831 ffeequiv_terminate_0 ();
832 ffeexpr_terminate_0 ();
833 ffeglobal_terminate_0 ();
834 ffeimplic_terminate_0 ();
835 ffeinfo_terminate_0 ();
836 ffeintrin_terminate_0 ();
837 ffelab_terminate_0 ();
838 ffelex_terminate_0 ();
839 ffename_terminate_0 ();
840 ffesrc_terminate_0 ();
841 ffest_terminate_0 ();
842 ffestorag_terminate_0 ();
843 ffesymbol_terminate_0 ();
844 ffetarget_terminate_0 ();
845 ffetype_terminate_0 ();
846 ffewhere_terminate_0 ();
849 /* ffe_terminate_1 -- Terminate the FFE after seeing source file EOF
851 ffe_terminate_1(); */
854 ffe_terminate_1 (void)
861 ffebad_terminate_1 ();
862 ffebit_terminate_1 ();
863 ffebld_terminate_1 ();
864 ffecom_terminate_1 ();
865 ffedata_terminate_1 ();
866 ffeequiv_terminate_1 ();
867 ffeexpr_terminate_1 ();
868 ffeglobal_terminate_1 ();
869 ffeimplic_terminate_1 ();
870 ffeinfo_terminate_1 ();
871 ffeintrin_terminate_1 ();
872 ffelab_terminate_1 ();
873 ffelex_terminate_1 ();
874 ffename_terminate_1 ();
875 ffesrc_terminate_1 ();
876 ffest_terminate_1 ();
877 ffestorag_terminate_1 ();
878 ffesymbol_terminate_1 ();
879 ffetarget_terminate_1 ();
880 ffetype_terminate_1 ();
881 ffewhere_terminate_1 ();
883 assert (ffe_file_pool_
!= NULL
);
884 malloc_pool_kill (ffe_file_pool_
);
885 ffe_file_pool_
= NULL
;
888 /* ffe_terminate_2 -- Terminate the FFE after seeing outer program unit END
890 ffe_terminate_2(); */
893 ffe_terminate_2 (void)
900 ffebad_terminate_2 ();
901 ffebit_terminate_2 ();
902 ffebld_terminate_2 ();
903 ffecom_terminate_2 ();
904 ffedata_terminate_2 ();
905 ffeequiv_terminate_2 ();
906 ffeexpr_terminate_2 ();
907 ffeglobal_terminate_2 ();
908 ffeimplic_terminate_2 ();
909 ffeinfo_terminate_2 ();
910 ffeintrin_terminate_2 ();
911 ffelab_terminate_2 ();
912 ffelex_terminate_2 ();
913 ffename_terminate_2 ();
914 ffesrc_terminate_2 ();
915 ffest_terminate_2 ();
916 ffestorag_terminate_2 ();
917 ffesymbol_terminate_2 ();
918 ffetarget_terminate_2 ();
919 ffetype_terminate_2 ();
920 ffewhere_terminate_2 ();
922 assert (ffe_program_unit_pool_
!= NULL
);
923 malloc_pool_kill (ffe_program_unit_pool_
);
924 ffe_program_unit_pool_
= NULL
;
927 /* ffe_terminate_3 -- Terminate the FFE after seeing any program unit END
929 ffe_terminate_3(); */
932 ffe_terminate_3 (void)
937 ffebad_terminate_3 ();
938 ffebit_terminate_3 ();
939 ffebld_terminate_3 ();
940 ffecom_terminate_3 ();
941 ffedata_terminate_3 ();
942 ffeequiv_terminate_3 ();
943 ffeexpr_terminate_3 ();
944 ffeglobal_terminate_3 ();
945 ffeimplic_terminate_3 ();
946 ffeinfo_terminate_3 ();
947 ffeintrin_terminate_3 ();
948 ffelab_terminate_3 ();
949 ffelex_terminate_3 ();
950 ffename_terminate_3 ();
951 ffesrc_terminate_3 ();
952 ffest_terminate_3 ();
953 ffestorag_terminate_3 ();
954 ffesymbol_terminate_3 ();
955 ffetarget_terminate_3 ();
956 ffetype_terminate_3 ();
957 ffewhere_terminate_3 ();
959 assert (ffe_any_unit_pool_
!= NULL
);
960 malloc_pool_kill (ffe_any_unit_pool_
);
961 ffe_any_unit_pool_
= NULL
;
964 /* ffe_terminate_4 -- Terminate the FFE after seeing sfunc def expression
966 ffe_terminate_4(); */
969 ffe_terminate_4 (void)
973 ffebad_terminate_4 ();
974 ffebit_terminate_4 ();
975 ffebld_terminate_4 ();
976 ffecom_terminate_4 ();
977 ffedata_terminate_4 ();
978 ffeequiv_terminate_4 ();
979 ffeexpr_terminate_4 ();
980 ffeglobal_terminate_4 ();
981 ffeimplic_terminate_4 ();
982 ffeinfo_terminate_4 ();
983 ffeintrin_terminate_4 ();
984 ffelab_terminate_4 ();
985 ffelex_terminate_4 ();
986 ffename_terminate_4 ();
987 ffesrc_terminate_4 ();
988 ffest_terminate_4 ();
989 ffestorag_terminate_4 ();
990 ffesymbol_terminate_4 ();
991 ffetarget_terminate_4 ();
992 ffetype_terminate_4 ();
993 ffewhere_terminate_4 ();