summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>2017-11-15 12:39:06 +0000
committermarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>2017-11-15 12:39:06 +0000
commit8b72061f8c106def60d8ba7c907e2fedcbb9fa5e (patch)
treeff8c417c9e925fa6db7f1ed3018ffe6b351dfc07
parent3912d56846ab250085620351248c3fa48516bd79 (diff)
downloadgcc-8b72061f8c106def60d8ba7c907e2fedcbb9fa5e.tar.gz
Disable -Wreturn-type by default in all languages other from C++.
2017-11-15 Martin Liska <mliska@suse.cz> * tree-cfg.c (pass_warn_function_return::execute): Compare warn_return_type for greater than zero. 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254764 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/fortran/ChangeLog9
-rw-r--r--gcc/fortran/options.c3
-rw-r--r--gcc/fortran/trans-decl.c8
-rw-r--r--gcc/tree-cfg.c2
5 files changed, 19 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4bae57c7d3a..4e2e4151859 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-11-15 Martin Liska <mliska@suse.cz>
+
+ * tree-cfg.c (pass_warn_function_return::execute):
+ Compare warn_return_type for greater than zero.
+
2017-11-15 Sebastian Peryt <sebastian.peryt@intel.com>
PR target/82941
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)
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 9a2fa1d98ca..f08a0547f0f 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -9071,7 +9071,7 @@ pass_warn_function_return::execute (function *fun)
/* If we see "return;" in some basic block, then we do reach the end
without returning a value. */
- else if (warn_return_type
+ else if (warn_return_type > 0
&& !TREE_NO_WARNING (fun->decl)
&& EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (fun)->preds) > 0
&& !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fun->decl))))