diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-04-25 08:25:48 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-04-25 08:25:48 +0200 |
commit | f1fb11f1e8322a94b90ea8c1a1cbae79c5f1bab5 (patch) | |
tree | cf5861882524a9b89885cd03d357099ba5ab7625 /gcc/fortran/options.c | |
parent | ad1d9a5079591596b5ccd5a924a8b9c65c542e3e (diff) | |
download | gcc-f1fb11f1e8322a94b90ea8c1a1cbae79c5f1bab5.zip gcc-f1fb11f1e8322a94b90ea8c1a1cbae79c5f1bab5.tar.gz gcc-f1fb11f1e8322a94b90ea8c1a1cbae79c5f1bab5.tar.bz2 |
re PR fortran/52196 (Add -Wrealloc-lhs)
2012-04-25 Tobias Burnus <burnus@net-b.de>
PR fortran/52196
* lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags.
* gfortran.h (gfc_option_t): Add them.
* options.c (gfc_init_options, gfc_post_options,
gfc_handle_option): Handle them.
* invoke.texi: Document them.
* trans-expr.c (realloc_lhs_warning): New function.
(gfc_trans_arrayfunc_assign,
alloc_scalar_allocatable_for_assignment,
gfc_trans_assignment_1): Use it.
2012-04-25 Tobias Burnus <burnus@net-b.de>
PR fortran/52196
* gfortran.dg/realloc_on_assign_14.f90: New.
From-SVN: r186806
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r-- | gcc/fortran/options.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index 1010a93..dde7ff2 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -111,6 +111,8 @@ gfc_init_options (unsigned int decoded_options_count, gfc_option.warn_align_commons = 1; gfc_option.warn_real_q_constant = 0; gfc_option.warn_unused_dummy_argument = 0; + gfc_option.warn_realloc_lhs = 0; + gfc_option.warn_realloc_lhs_all = 0; gfc_option.max_errors = 25; gfc_option.flag_all_intrinsics = 0; @@ -437,6 +439,9 @@ gfc_post_options (const char **pfilename) if (gfc_option.flag_frontend_optimize == -1) gfc_option.flag_frontend_optimize = optimize; + if (gfc_option.warn_realloc_lhs_all) + gfc_option.warn_realloc_lhs = 1; + gfc_cpp_post_options (); /* FIXME: return gfc_cpp_preprocess_only (); @@ -654,6 +659,14 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.warn_line_truncation = value; break; + case OPT_Wrealloc_lhs: + gfc_option.warn_realloc_lhs = value; + break; + + case OPT_Wrealloc_lhs_all: + gfc_option.warn_realloc_lhs_all = value; + break; + case OPT_Wreturn_type: warn_return_type = value; break; |