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

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