Blame SOURCES/0016-Suppress-warning-with-Wno-overwrite-recursive.patch

ac4b94
From 9bf3b68e118a749ab87f52649fd56aca059470e8 Mon Sep 17 00:00:00 2001
ac4b94
From: Mark Eggleston <markeggleston@codethink.com>
ac4b94
Date: Tue, 16 Apr 2019 09:09:12 +0100
ac4b94
Subject: [PATCH 16/16] Suppress warning with -Wno-overwrite-recursive
ac4b94
ac4b94
The message "Warning: Flag '-fno-automatic' overwrites '-frecursive'" is
ac4b94
output by default when -fno-automatic and -frecursive are used together.
ac4b94
It warns that recursion may be broken, however if all the relavent variables
ac4b94
in the recursive procedure have automatic attributes the warning is
ac4b94
unnecessary so -Wno-overwrite-recursive can be used to suppress it. This
ac4b94
will allow compilation when warnings are regarded as errors.
ac4b94
ac4b94
Suppress warning with -Wno-overwrite-recursive
ac4b94
---
ac4b94
 gcc/fortran/lang.opt  | 4 ++++
ac4b94
 gcc/fortran/options.c | 2 +-
ac4b94
 2 files changed, 5 insertions(+), 1 deletion(-)
ac4b94
ac4b94
diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt
ac4b94
index dca3fd27aa3..e5074f614e3 100644
ac4b94
--- a/gcc/fortran/lang.opt
ac4b94
+++ b/gcc/fortran/lang.opt
ac4b94
@@ -293,6 +293,10 @@ Wopenmp-simd
ac4b94
 Fortran
ac4b94
 ; Documented in C
ac4b94
 
ac4b94
+Woverwrite-recursive
ac4b94
+Fortran Warning Var(warn_overwrite_recursive) Init(1)
ac4b94
+Warn that -fno-automatic may break recursion.
ac4b94
+
ac4b94
 Wpedantic
ac4b94
 Fortran
ac4b94
 ; Documented in common.opt
ac4b94
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
ac4b94
index f417f48f6a7..6cbc64bf1ae 100644
ac4b94
--- a/gcc/fortran/options.c
ac4b94
+++ b/gcc/fortran/options.c
ac4b94
@@ -418,7 +418,7 @@ gfc_post_options (const char **pfilename)
ac4b94
       && flag_max_stack_var_size != 0)
ac4b94
     gfc_warning_now (0, "Flag %<-fno-automatic%> overwrites %<-fmax-stack-var-size=%d%>",
ac4b94
 		     flag_max_stack_var_size);
ac4b94
-  else if (!flag_automatic && flag_recursive)
ac4b94
+  else if (!flag_automatic && flag_recursive && warn_overwrite_recursive)
ac4b94
     gfc_warning_now (0, "Flag %<-fno-automatic%> overwrites %<-frecursive%>");
ac4b94
   else if (!flag_automatic && flag_openmp)
ac4b94
     gfc_warning_now (0, "Flag %<-fno-automatic%> overwrites %<-frecursive%> implied by "
ac4b94
-- 
ac4b94
2.11.0
ac4b94