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

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