1 /* Parse and display command line options.
2 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4 Free Software Foundation, Inc.
5 Contributed by Andy Vaught
7 This file is part of GCC.
9 GCC is free software; you can redistribute it and/or modify it under
10 the terms of the GNU General Public License as published by the Free
11 Software Foundation; either version 3, or (at your option) any later
14 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 You should have received a copy of the GNU General Public License
20 along with GCC; see the file COPYING3. If not see
21 <http://www.gnu.org/licenses/>. */
25 #include "coretypes.h"
32 #include "tree-inline.h"
39 gfc_option_t gfc_option;
42 /* Set flags that control warnings and errors for different
43 Fortran standards to their default values. Keep in sync with
44 libgfortran/runtime/compile_options.c (init_compile_options). */
47 set_default_std_flags (void)
49 gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F95_DEL
50 | GFC_STD_F2003 | GFC_STD_F2008 | GFC_STD_F95 | GFC_STD_F77
51 | GFC_STD_GNU | GFC_STD_LEGACY;
52 gfc_option.warn_std = GFC_STD_F95_DEL | GFC_STD_LEGACY;
56 /* Get ready for options handling. Keep in sync with
57 libgfortran/runtime/compile_options.c (init_compile_options). */
60 gfc_init_options (unsigned int argc, const char **argv)
62 gfc_source_file = NULL;
63 gfc_option.module_dir = NULL;
64 gfc_option.source_form = FORM_UNKNOWN;
65 gfc_option.fixed_line_length = 72;
66 gfc_option.free_line_length = 132;
67 gfc_option.max_continue_fixed = 255;
68 gfc_option.max_continue_free = 255;
69 gfc_option.max_identifier_length = GFC_MAX_SYMBOL_LEN;
70 gfc_option.max_subrecord_length = 0;
71 gfc_option.flag_max_array_constructor = 65535;
72 gfc_option.convert = GFC_CONVERT_NATIVE;
73 gfc_option.record_marker = 0;
74 gfc_option.dump_parse_tree = 0;
76 gfc_option.warn_aliasing = 0;
77 gfc_option.warn_ampersand = 0;
78 gfc_option.warn_character_truncation = 0;
79 gfc_option.warn_array_temp = 0;
80 gfc_option.warn_conversion = 0;
81 gfc_option.warn_implicit_interface = 0;
82 gfc_option.warn_line_truncation = 0;
83 gfc_option.warn_surprising = 0;
84 gfc_option.warn_tabs = 1;
85 gfc_option.warn_underflow = 1;
86 gfc_option.warn_intrinsic_shadow = 0;
87 gfc_option.warn_intrinsics_std = 0;
88 gfc_option.warn_align_commons = 1;
89 gfc_option.max_errors = 25;
91 gfc_option.flag_all_intrinsics = 0;
92 gfc_option.flag_default_double = 0;
93 gfc_option.flag_default_integer = 0;
94 gfc_option.flag_default_real = 0;
95 gfc_option.flag_dollar_ok = 0;
96 gfc_option.flag_underscoring = 1;
97 gfc_option.flag_whole_file = 0;
98 gfc_option.flag_f2c = 0;
99 gfc_option.flag_second_underscore = -1;
100 gfc_option.flag_implicit_none = 0;
102 /* Default value of flag_max_stack_var_size is set in gfc_post_options. */
103 gfc_option.flag_max_stack_var_size = -2;
105 gfc_option.flag_range_check = 1;
106 gfc_option.flag_pack_derived = 0;
107 gfc_option.flag_repack_arrays = 0;
108 gfc_option.flag_preprocessed = 0;
109 gfc_option.flag_automatic = 1;
110 gfc_option.flag_backslash = 0;
111 gfc_option.flag_module_private = 0;
112 gfc_option.flag_backtrace = 0;
113 gfc_option.flag_allow_leading_underscore = 0;
114 gfc_option.flag_dump_core = 0;
115 gfc_option.flag_external_blas = 0;
116 gfc_option.blas_matmul_limit = 30;
117 gfc_option.flag_cray_pointer = 0;
118 gfc_option.flag_d_lines = -1;
119 gfc_option.flag_openmp = 0;
120 gfc_option.flag_sign_zero = 1;
121 gfc_option.flag_recursive = 0;
122 gfc_option.flag_init_integer = GFC_INIT_INTEGER_OFF;
123 gfc_option.flag_init_integer_value = 0;
124 gfc_option.flag_init_real = GFC_INIT_REAL_OFF;
125 gfc_option.flag_init_logical = GFC_INIT_LOGICAL_OFF;
126 gfc_option.flag_init_character = GFC_INIT_CHARACTER_OFF;
127 gfc_option.flag_init_character_value = (char)0;
128 gfc_option.flag_align_commons = 1;
129 gfc_option.flag_protect_parens = 1;
132 gfc_option.rtcheck = 0;
133 gfc_option.coarray = GFC_FCOARRAY_NONE;
137 set_default_std_flags ();
139 /* -fshort-enums can be default on some targets. */
140 flag_short_enums = targetm.default_short_enums ();
142 /* Initialize cpp-related options. */
143 gfc_cpp_init_options(argc, argv);
149 /* Determine the source form from the filename extension. We assume
150 case insensitivity. */
152 static gfc_source_form
153 form_from_filename (const char *filename)
157 const char *extension;
158 gfc_source_form form;
185 }; /* sentinel value */
187 gfc_source_form f_form;
191 /* Find end of file name. Note, filename is either a NULL pointer or
192 a NUL terminated string. */
194 while (filename[i] != '\0')
197 /* Find last period. */
198 while (i >= 0 && (filename[i] != '.'))
201 /* Did we see a file extension? */
203 return FORM_UNKNOWN; /* Nope */
205 /* Get file extension and compare it to others. */
206 fileext = &(filename[i]);
209 f_form = FORM_UNKNOWN;
213 if (strcasecmp (fileext, exttype[i].extension) == 0)
215 f_form = exttype[i].form;
219 while (exttype[i].form != FORM_UNKNOWN);
225 /* Finalize commandline options. */
228 gfc_post_options (const char **pfilename)
230 const char *filename = *pfilename, *canon_source_file = NULL;
234 /* Excess precision other than "fast" requires front-end
236 if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD
237 && TARGET_FLT_EVAL_METHOD_NON_DEFAULT)
238 sorry ("-fexcess-precision=standard for Fortran");
239 flag_excess_precision_cmdline = EXCESS_PRECISION_FAST;
241 /* Whole program needs whole file mode. */
242 if (flag_whole_program)
243 gfc_option.flag_whole_file = 1;
245 /* Enable whole-file mode if LTO is in effect. */
246 if (flag_lto || flag_whopr)
247 gfc_option.flag_whole_file = 1;
249 /* -fbounds-check is equivalent to -fcheck=bounds */
250 if (flag_bounds_check)
251 gfc_option.rtcheck |= GFC_RTCHECK_BOUNDS;
253 if (flag_compare_debug)
254 gfc_option.dump_parse_tree = 0;
256 /* Verify the input file name. */
257 if (!filename || strcmp (filename, "-") == 0)
262 if (gfc_option.flag_preprocessed)
264 /* For preprocessed files, if the first tokens are of the form # NUM.
265 handle the directives so we know the original file name. */
266 gfc_source_file = gfc_read_orig_filename (filename, &canon_source_file);
267 if (gfc_source_file == NULL)
268 gfc_source_file = filename;
270 *pfilename = gfc_source_file;
273 gfc_source_file = filename;
275 if (canon_source_file == NULL)
276 canon_source_file = gfc_source_file;
278 /* Adds the path where the source file is to the list of include files. */
280 i = strlen (canon_source_file);
281 while (i > 0 && !IS_DIR_SEPARATOR (canon_source_file[i]))
286 source_path = (char *) alloca (i + 1);
287 memcpy (source_path, canon_source_file, i);
289 gfc_add_include_path (source_path, true, true);
292 gfc_add_include_path (".", true, true);
294 if (canon_source_file != gfc_source_file)
295 gfc_free (CONST_CAST (char *, canon_source_file));
297 /* Decide which form the file will be read in as. */
299 if (gfc_option.source_form != FORM_UNKNOWN)
300 gfc_current_form = gfc_option.source_form;
303 gfc_current_form = form_from_filename (filename);
305 if (gfc_current_form == FORM_UNKNOWN)
307 gfc_current_form = FORM_FREE;
308 gfc_warning_now ("Reading file '%s' as free form",
309 (filename[0] == '\0') ? "<stdin>" : filename);
313 /* If the user specified -fd-lines-as-{code|comments} verify that we're
315 if (gfc_current_form == FORM_FREE)
317 if (gfc_option.flag_d_lines == 0)
318 gfc_warning_now ("'-fd-lines-as-comments' has no effect "
320 else if (gfc_option.flag_d_lines == 1)
321 gfc_warning_now ("'-fd-lines-as-code' has no effect in free form");
324 /* If -pedantic, warn about the use of GNU extensions. */
325 if (pedantic && (gfc_option.allow_std & GFC_STD_GNU) != 0)
326 gfc_option.warn_std |= GFC_STD_GNU;
327 /* -std=legacy -pedantic is effectively -std=gnu. */
328 if (pedantic && (gfc_option.allow_std & GFC_STD_LEGACY) != 0)
329 gfc_option.warn_std |= GFC_STD_F95_OBS | GFC_STD_F95_DEL | GFC_STD_LEGACY;
331 /* If the user didn't explicitly specify -f(no)-second-underscore we
332 use it if we're trying to be compatible with f2c, and not
334 if (gfc_option.flag_second_underscore == -1)
335 gfc_option.flag_second_underscore = gfc_option.flag_f2c;
337 if (!gfc_option.flag_automatic && gfc_option.flag_max_stack_var_size != -2
338 && gfc_option.flag_max_stack_var_size != 0)
339 gfc_warning_now ("Flag -fno-automatic overwrites -fmax-stack-var-size=%d",
340 gfc_option.flag_max_stack_var_size);
341 else if (!gfc_option.flag_automatic && gfc_option.flag_recursive)
342 gfc_warning_now ("Flag -fno-automatic overwrites -frecursive");
343 else if (!gfc_option.flag_automatic && gfc_option.flag_openmp)
344 gfc_warning_now ("Flag -fno-automatic overwrites -frecursive implied by "
346 else if (gfc_option.flag_max_stack_var_size != -2
347 && gfc_option.flag_recursive)
348 gfc_warning_now ("Flag -frecursive overwrites -fmax-stack-var-size=%d",
349 gfc_option.flag_max_stack_var_size);
350 else if (gfc_option.flag_max_stack_var_size != -2
351 && gfc_option.flag_openmp)
352 gfc_warning_now ("Flag -fmax-stack-var-size=%d overwrites -frecursive "
353 "implied by -fopenmp",
354 gfc_option.flag_max_stack_var_size);
356 /* Implement -frecursive as -fmax-stack-var-size=-1. */
357 if (gfc_option.flag_recursive)
358 gfc_option.flag_max_stack_var_size = -1;
360 /* Implied -frecursive; implemented as -fmax-stack-var-size=-1. */
361 if (gfc_option.flag_max_stack_var_size == -2 && gfc_option.flag_openmp
362 && gfc_option.flag_automatic)
364 gfc_option.flag_recursive = 1;
365 gfc_option.flag_max_stack_var_size = -1;
369 if (gfc_option.flag_max_stack_var_size == -2)
370 gfc_option.flag_max_stack_var_size = 32768;
372 /* Implement -fno-automatic as -fmax-stack-var-size=0. */
373 if (!gfc_option.flag_automatic)
374 gfc_option.flag_max_stack_var_size = 0;
378 gfc_option.warn_ampersand = 1;
379 gfc_option.warn_tabs = 0;
382 if (pedantic && gfc_option.flag_whole_file)
383 gfc_option.flag_whole_file = 2;
385 gfc_cpp_post_options ();
387 /* FIXME: return gfc_cpp_preprocess_only ();
389 The return value of this function indicates whether the
390 backend needs to be initialized. On -E, we don't need
391 the backend. However, if we return 'true' here, an
392 ICE occurs. Initializing the backend doesn't hurt much,
393 hence, for now we can live with it as is. */
398 /* Set the options for -Wall. */
401 set_Wall (int setting)
403 gfc_option.warn_aliasing = setting;
404 gfc_option.warn_ampersand = setting;
405 gfc_option.warn_line_truncation = setting;
406 gfc_option.warn_surprising = setting;
407 gfc_option.warn_tabs = !setting;
408 gfc_option.warn_underflow = setting;
409 gfc_option.warn_intrinsic_shadow = setting;
410 gfc_option.warn_intrinsics_std = setting;
411 gfc_option.warn_character_truncation = setting;
413 warn_unused = setting;
414 warn_return_type = setting;
415 warn_switch = setting;
416 warn_uninitialized = setting;
421 gfc_handle_module_path_options (const char *arg)
424 if (gfc_option.module_dir != NULL)
425 gfc_fatal_error ("gfortran: Only one -J option allowed");
427 gfc_option.module_dir = (char *) gfc_getmem (strlen (arg) + 2);
428 strcpy (gfc_option.module_dir, arg);
429 strcat (gfc_option.module_dir, "/");
431 gfc_add_include_path (gfc_option.module_dir, true, false);
436 gfc_handle_fpe_trap_option (const char *arg)
438 int result, pos = 0, n;
439 static const char * const exception[] = { "invalid", "denormal", "zero",
440 "overflow", "underflow",
442 static const int opt_exception[] = { GFC_FPE_INVALID, GFC_FPE_DENORMAL,
443 GFC_FPE_ZERO, GFC_FPE_OVERFLOW,
444 GFC_FPE_UNDERFLOW, GFC_FPE_PRECISION,
452 while (arg[pos] && arg[pos] != ',')
456 for (n = 0; exception[n] != NULL; n++)
458 if (exception[n] && strncmp (exception[n], arg, pos) == 0)
460 gfc_option.fpe |= opt_exception[n];
468 gfc_fatal_error ("Argument to -ffpe-trap is not valid: %s", arg);
474 gfc_handle_coarray_option (const char *arg)
476 if (strcmp (arg, "none") == 0)
477 gfc_option.coarray = GFC_FCOARRAY_NONE;
478 else if (strcmp (arg, "single") == 0)
479 gfc_option.coarray = GFC_FCOARRAY_SINGLE;
481 gfc_fatal_error ("Argument to -fcoarray is not valid: %s", arg);
486 gfc_handle_runtime_check_option (const char *arg)
488 int result, pos = 0, n;
489 static const char * const optname[] = { "all", "bounds", "array-temps",
490 "recursion", "do", "pointer",
492 static const int optmask[] = { GFC_RTCHECK_ALL, GFC_RTCHECK_BOUNDS,
493 GFC_RTCHECK_ARRAY_TEMPS,
494 GFC_RTCHECK_RECURSION, GFC_RTCHECK_DO,
495 GFC_RTCHECK_POINTER, GFC_RTCHECK_MEM,
503 while (arg[pos] && arg[pos] != ',')
507 for (n = 0; optname[n] != NULL; n++)
509 if (optname[n] && strncmp (optname[n], arg, pos) == 0)
511 gfc_option.rtcheck |= optmask[n];
519 gfc_fatal_error ("Argument to -fcheck is not valid: %s", arg);
524 /* Handle command-line options. Returns 0 if unrecognized, 1 if
525 recognized and handled. */
528 gfc_handle_option (size_t scode, const char *arg, int value,
529 int kind ATTRIBUTE_UNUSED)
532 enum opt_code code = (enum opt_code) scode;
534 /* Ignore file names. */
538 if (gfc_cpp_handle_option (scode, arg, value) == 1)
552 gfc_option.warn_aliasing = value;
556 gfc_option.warn_ampersand = value;
559 case OPT_Warray_temporaries:
560 gfc_option.warn_array_temp = value;
563 case OPT_Wcharacter_truncation:
564 gfc_option.warn_character_truncation = value;
567 case OPT_Wconversion:
568 gfc_option.warn_conversion = value;
571 case OPT_Wimplicit_interface:
572 gfc_option.warn_implicit_interface = value;
575 case OPT_Wimplicit_procedure:
576 gfc_option.warn_implicit_procedure = value;
579 case OPT_Wline_truncation:
580 gfc_option.warn_line_truncation = value;
583 case OPT_Wreturn_type:
584 warn_return_type = value;
587 case OPT_Wsurprising:
588 gfc_option.warn_surprising = value;
592 gfc_option.warn_tabs = value;
596 gfc_option.warn_underflow = value;
599 case OPT_Wintrinsic_shadow:
600 gfc_option.warn_intrinsic_shadow = value;
603 case OPT_Walign_commons:
604 gfc_option.warn_align_commons = value;
607 case OPT_fall_intrinsics:
608 gfc_option.flag_all_intrinsics = 1;
612 gfc_option.flag_automatic = value;
615 case OPT_fallow_leading_underscore:
616 gfc_option.flag_allow_leading_underscore = value;
620 gfc_option.flag_backslash = value;
624 gfc_option.flag_backtrace = value;
627 case OPT_fcheck_array_temporaries:
628 gfc_option.rtcheck |= GFC_RTCHECK_ARRAY_TEMPS;
632 gfc_option.flag_dump_core = value;
635 case OPT_fcray_pointer:
636 gfc_option.flag_cray_pointer = value;
640 gfc_option.flag_f2c = value;
644 gfc_option.flag_dollar_ok = value;
647 case OPT_fexternal_blas:
648 gfc_option.flag_external_blas = value;
651 case OPT_fblas_matmul_limit_:
652 gfc_option.blas_matmul_limit = value;
655 case OPT_fd_lines_as_code:
656 gfc_option.flag_d_lines = 1;
659 case OPT_fd_lines_as_comments:
660 gfc_option.flag_d_lines = 0;
663 case OPT_fdump_parse_tree:
664 gfc_option.dump_parse_tree = value;
667 case OPT_ffixed_form:
668 gfc_option.source_form = FORM_FIXED;
671 case OPT_ffixed_line_length_none:
672 gfc_option.fixed_line_length = 0;
675 case OPT_ffixed_line_length_:
676 if (value != 0 && value < 7)
677 gfc_fatal_error ("Fixed line length must be at least seven.");
678 gfc_option.fixed_line_length = value;
682 gfc_option.source_form = FORM_FREE;
686 gfc_option.flag_openmp = value;
689 case OPT_ffree_line_length_none:
690 gfc_option.free_line_length = 0;
693 case OPT_ffree_line_length_:
694 if (value != 0 && value < 4)
695 gfc_fatal_error ("Free line length must be at least three.");
696 gfc_option.free_line_length = value;
699 case OPT_funderscoring:
700 gfc_option.flag_underscoring = value;
703 case OPT_fwhole_file:
704 gfc_option.flag_whole_file = 1;
707 case OPT_fsecond_underscore:
708 gfc_option.flag_second_underscore = value;
711 case OPT_static_libgfortran:
712 #ifndef HAVE_LD_STATIC_DYNAMIC
713 gfc_fatal_error ("-static-libgfortran is not supported in this "
718 case OPT_fimplicit_none:
719 gfc_option.flag_implicit_none = value;
722 case OPT_fintrinsic_modules_path:
723 gfc_add_include_path (arg, false, false);
724 gfc_add_intrinsic_modules_path (arg);
727 case OPT_fmax_array_constructor_:
728 gfc_option.flag_max_array_constructor = value > 65535 ? value : 65535;
731 case OPT_fmax_errors_:
732 gfc_option.max_errors = value;
735 case OPT_fmax_stack_var_size_:
736 gfc_option.flag_max_stack_var_size = value;
739 case OPT_fmodule_private:
740 gfc_option.flag_module_private = value;
743 case OPT_frange_check:
744 gfc_option.flag_range_check = value;
747 case OPT_fpack_derived:
748 gfc_option.flag_pack_derived = value;
751 case OPT_frepack_arrays:
752 gfc_option.flag_repack_arrays = value;
755 case OPT_fpreprocessed:
756 gfc_option.flag_preprocessed = value;
759 case OPT_fmax_identifier_length_:
760 if (value > GFC_MAX_SYMBOL_LEN)
761 gfc_fatal_error ("Maximum supported identifier length is %d",
763 gfc_option.max_identifier_length = value;
766 case OPT_fdefault_integer_8:
767 gfc_option.flag_default_integer = value;
770 case OPT_fdefault_real_8:
771 gfc_option.flag_default_real = value;
774 case OPT_fdefault_double_8:
775 gfc_option.flag_default_double = value;
778 case OPT_finit_local_zero:
779 gfc_option.flag_init_integer = GFC_INIT_INTEGER_ON;
780 gfc_option.flag_init_integer_value = 0;
781 gfc_option.flag_init_real = GFC_INIT_REAL_ZERO;
782 gfc_option.flag_init_logical = GFC_INIT_LOGICAL_FALSE;
783 gfc_option.flag_init_character = GFC_INIT_CHARACTER_ON;
784 gfc_option.flag_init_character_value = (char)0;
787 case OPT_finit_logical_:
788 if (!strcasecmp (arg, "false"))
789 gfc_option.flag_init_logical = GFC_INIT_LOGICAL_FALSE;
790 else if (!strcasecmp (arg, "true"))
791 gfc_option.flag_init_logical = GFC_INIT_LOGICAL_TRUE;
793 gfc_fatal_error ("Unrecognized option to -finit-logical: %s",
797 case OPT_finit_real_:
798 if (!strcasecmp (arg, "zero"))
799 gfc_option.flag_init_real = GFC_INIT_REAL_ZERO;
800 else if (!strcasecmp (arg, "nan"))
801 gfc_option.flag_init_real = GFC_INIT_REAL_NAN;
802 else if (!strcasecmp (arg, "snan"))
803 gfc_option.flag_init_real = GFC_INIT_REAL_SNAN;
804 else if (!strcasecmp (arg, "inf"))
805 gfc_option.flag_init_real = GFC_INIT_REAL_INF;
806 else if (!strcasecmp (arg, "-inf"))
807 gfc_option.flag_init_real = GFC_INIT_REAL_NEG_INF;
809 gfc_fatal_error ("Unrecognized option to -finit-real: %s",
813 case OPT_finit_integer_:
814 gfc_option.flag_init_integer = GFC_INIT_INTEGER_ON;
815 gfc_option.flag_init_integer_value = atoi (arg);
818 case OPT_finit_character_:
819 if (value >= 0 && value <= 127)
821 gfc_option.flag_init_character = GFC_INIT_CHARACTER_ON;
822 gfc_option.flag_init_character_value = (char)value;
825 gfc_fatal_error ("The value of n in -finit-character=n must be "
826 "between 0 and 127");
830 gfc_add_include_path (arg, true, false);
834 gfc_handle_module_path_options (arg);
838 gfc_option.flag_sign_zero = value;
842 gfc_handle_fpe_trap_option (arg);
846 gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F95 | GFC_STD_F77;
847 gfc_option.warn_std = GFC_STD_F95_OBS;
848 gfc_option.max_continue_fixed = 19;
849 gfc_option.max_continue_free = 39;
850 gfc_option.max_identifier_length = 31;
851 gfc_option.warn_ampersand = 1;
852 gfc_option.warn_tabs = 0;
856 gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77
857 | GFC_STD_F2003 | GFC_STD_F95;
858 gfc_option.warn_std = GFC_STD_F95_OBS;
859 gfc_option.max_identifier_length = 63;
860 gfc_option.warn_ampersand = 1;
861 gfc_option.warn_tabs = 0;
865 gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77
866 | GFC_STD_F2003 | GFC_STD_F95 | GFC_STD_F2008;
867 gfc_option.warn_std = GFC_STD_F95_OBS;
868 gfc_option.max_identifier_length = 63;
869 gfc_option.warn_ampersand = 1;
870 gfc_option.warn_tabs = 0;
874 set_default_std_flags ();
878 set_default_std_flags ();
879 gfc_option.warn_std = 0;
882 case OPT_Wintrinsics_std:
883 gfc_option.warn_intrinsics_std = value;
886 case OPT_fshort_enums:
887 flag_short_enums = 1;
890 case OPT_fconvert_little_endian:
891 gfc_option.convert = GFC_CONVERT_LITTLE;
894 case OPT_fconvert_big_endian:
895 gfc_option.convert = GFC_CONVERT_BIG;
898 case OPT_fconvert_native:
899 gfc_option.convert = GFC_CONVERT_NATIVE;
902 case OPT_fconvert_swap:
903 gfc_option.convert = GFC_CONVERT_SWAP;
906 case OPT_frecord_marker_4:
907 gfc_option.record_marker = 4;
910 case OPT_frecord_marker_8:
911 gfc_option.record_marker = 8;
914 case OPT_fmax_subrecord_length_:
915 if (value > MAX_SUBRECORD_LENGTH)
916 gfc_fatal_error ("Maximum subrecord length cannot exceed %d",
917 MAX_SUBRECORD_LENGTH);
919 gfc_option.max_subrecord_length = value;
923 gfc_option.flag_recursive = 1;
926 case OPT_falign_commons:
927 gfc_option.flag_align_commons = value;
930 case OPT_fprotect_parens:
931 gfc_option.flag_protect_parens = value;
935 gfc_handle_runtime_check_option (arg);
939 gfc_handle_coarray_option (arg);