2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
+ * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
+ * match.c (gfc_match_critical, sync_statement): Ditto.
+ * gfortran.h (gfc_fcoarray): New enum.
+ (gfc_option_t): Use it.
+ * lang.opt (fcoarray): Add new flag.
+ * invoke.texi (fcoarray): Document it.
+ * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
+ (gfc_handle_coarray_option): New function.
+
+2010-04-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/18918
* gfortran.h (gfc_array_spec): Add cotype.
* array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
and defer error diagnostic.
gfc_option.warn_character_truncation = 0;
gfc_option.warn_array_temp = 0;
gfc_option.warn_conversion = 0;
- gfc_option.warn_conversion_extra = 0;
gfc_option.warn_implicit_interface = 0;
gfc_option.warn_line_truncation = 0;
gfc_option.warn_surprising = 0;
gfc_option.warn_intrinsic_shadow = 0;
gfc_option.warn_intrinsics_std = 0;
gfc_option.warn_align_commons = 1;
- gfc_option.warn_unused_dummy_argument = 0;
gfc_option.max_errors = 25;
gfc_option.flag_all_intrinsics = 0;
gfc_option.rtcheck = 0;
gfc_option.coarray = GFC_FCOARRAY_NONE;
+ /* Argument pointers cannot point to anything but their argument. */
+ flag_argument_noalias = 3;
+
flag_errno_math = 0;
- flag_associative_math = -1;
set_default_std_flags ();
if (flag_lto || flag_whopr)
gfc_option.flag_whole_file = 1;
- /* Fortran allows associative math - but we cannot reassociate if
- we want traps or signed zeros. Cf. also flag_protect_parens. */
- if (flag_associative_math == -1)
- flag_associative_math = (!flag_trapping_math && !flag_signed_zeros);
-
/* -fbounds-check is equivalent to -fcheck=bounds */
if (flag_bounds_check)
gfc_option.rtcheck |= GFC_RTCHECK_BOUNDS;
{
gfc_option.warn_aliasing = setting;
gfc_option.warn_ampersand = setting;
- gfc_option.warn_conversion = setting;
gfc_option.warn_line_truncation = setting;
gfc_option.warn_surprising = setting;
gfc_option.warn_tabs = !setting;
gfc_option.warn_intrinsic_shadow = setting;
gfc_option.warn_intrinsics_std = setting;
gfc_option.warn_character_truncation = setting;
- gfc_option.warn_unused_dummy_argument = setting;
warn_unused = setting;
warn_return_type = setting;
warn_switch = setting;
- warn_uninitialized = setting;
+
+ /* We save the value of warn_uninitialized, since if they put
+ -Wuninitialized on the command line, we need to generate a
+ warning about not using it without also specifying -O. */
+ if (setting == 0)
+ warn_uninitialized = 0;
+ else if (warn_uninitialized != 1)
+ warn_uninitialized = 2;
}
recognized and handled. */
int
-gfc_handle_option (size_t scode, const char *arg, int value,
- int kind ATTRIBUTE_UNUSED)
+gfc_handle_option (size_t scode, const char *arg, int value)
{
int result = 1;
enum opt_code code = (enum opt_code) scode;
gfc_option.warn_conversion = value;
break;
- case OPT_Wconversion_extra:
- gfc_option.warn_conversion_extra = value;
- break;
-
case OPT_Wimplicit_interface:
gfc_option.warn_implicit_interface = value;
break;
gfc_option.warn_align_commons = value;
break;
- case OPT_Wunused_dummy_argument:
- gfc_option.warn_unused_dummy_argument = value;
- break;
-
case OPT_fall_intrinsics:
gfc_option.flag_all_intrinsics = 1;
break;