summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog9
-rw-r--r--gcc/fortran/options.c3
-rw-r--r--gcc/fortran/trans-decl.c8
3 files changed, 13 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 54877ff50a9..d3170c7370a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2017-11-15 Martin Liska <mliska@suse.cz>
+
+ * options.c (gfc_post_options):
+ Do not set default value of warn_return_type.
+ * trans-decl.c (gfc_trans_deferred_vars):
+ Compare warn_return_type for greater than zero.
+ (generate_local_decl): Likewise
+ (gfc_generate_function_code): Likewise.
+
2017-11-13 Fritz Reese <fritzoreese@gmail.com>
PR fortran/78240
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index c584a19e559..0ee6b7808d9 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -435,9 +435,6 @@ gfc_post_options (const char **pfilename)
gfc_fatal_error ("Maximum subrecord length cannot exceed %d",
MAX_SUBRECORD_LENGTH);
- if (warn_return_type == -1)
- warn_return_type = 0;
-
gfc_cpp_post_options ();
if (gfc_option.allow_std & GFC_STD_F2008)
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 8efaae79ebc..60e7d8f79ee 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -4198,7 +4198,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block)
break;
}
/* TODO: move to the appropriate place in resolve.c. */
- if (warn_return_type && el == NULL)
+ if (warn_return_type > 0 && el == NULL)
gfc_warning (OPT_Wreturn_type,
"Return value of function %qs at %L not set",
proc_sym->name, &proc_sym->declared_at);
@@ -5619,7 +5619,7 @@ generate_local_decl (gfc_symbol * sym)
else if (sym->attr.flavor == FL_PROCEDURE)
{
/* TODO: move to the appropriate place in resolve.c. */
- if (warn_return_type
+ if (warn_return_type > 0
&& sym->attr.function
&& sym->result
&& sym != sym->result
@@ -6494,11 +6494,11 @@ gfc_generate_function_code (gfc_namespace * ns)
if (result == NULL_TREE || artificial_result_decl)
{
/* TODO: move to the appropriate place in resolve.c. */
- if (warn_return_type && sym == sym->result)
+ if (warn_return_type > 0 && sym == sym->result)
gfc_warning (OPT_Wreturn_type,
"Return value of function %qs at %L not set",
sym->name, &sym->declared_at);
- if (warn_return_type)
+ if (warn_return_type > 0)
TREE_NO_WARNING(sym->backend_decl) = 1;
}
if (result != NULL_TREE)