aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-01-07 10:15:38 +0100
committerMartin Liska <marxin@gcc.gnu.org>2020-01-07 09:15:38 +0000
commita924bffba921d568fbd65210857e1b5031776bb8 (patch)
tree3ff270edba232c10d064cf0c88f79552ca301740
parenta86689f5e9b939a4fc020b873fd9fca6ed98f1e5 (diff)
downloadgcc-a924bffba921d568fbd65210857e1b5031776bb8.zip
gcc-a924bffba921d568fbd65210857e1b5031776bb8.tar.gz
gcc-a924bffba921d568fbd65210857e1b5031776bb8.tar.bz2
Make warn_inline Optimization option.
2020-01-07 Martin Liska <mliska@suse.cz> PR tree-optimization/92860 * common.opt: Make in Optimization option as it is affected by -O0, which is an Optimization option. * tree-inline.c (tree_inlinable_function_p): Use opt_for_fn for warn_inline. (expand_call_inline): Likewise. 2020-01-07 Martin Liska <mliska@suse.cz> PR tree-optimization/92860 * gcc.dg/pr92860-2.c: New test. From-SVN: r279947
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/common.opt2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr92860-2.c13
-rw-r--r--gcc/tree-inline.c4
5 files changed, 31 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 288c0e2..d4c3731 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,16 @@
2020-01-07 Martin Liska <mliska@suse.cz>
PR tree-optimization/92860
+ * common.opt: Make in Optimization option
+ as it is affected by -O0, which is an Optimization
+ option.
+ * tree-inline.c (tree_inlinable_function_p):
+ Use opt_for_fn for warn_inline.
+ (expand_call_inline): Likewise.
+
+2020-01-07 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/92860
* common.opt: Make flag_ree as optimization
attribute.
diff --git a/gcc/common.opt b/gcc/common.opt
index 02c7cdd..9fc9211 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -617,7 +617,7 @@ Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning Int
Warn when a switch case falls through.
Winline
-Common Var(warn_inline) Warning
+Common Var(warn_inline) Warning Optimization
Warn when an inlined function cannot be inlined.
Winvalid-memory-model
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dabc9d2..4e02fb4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,6 +1,11 @@
2020-01-07 Martin Liska <mliska@suse.cz>
PR tree-optimization/92860
+ * gcc.dg/pr92860-2.c: New test.
+
+2020-01-07 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/92860
* gcc.dg/pr92860.c: New test.
2020-01-07 Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/testsuite/gcc.dg/pr92860-2.c b/gcc/testsuite/gcc.dg/pr92860-2.c
new file mode 100644
index 0000000..57af606
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr92860-2.c
@@ -0,0 +1,13 @@
+/* PR tree-optimization/92860 */
+/* { dg-do compile } */
+/* { dg-options "-Winline -O2 -fgnu89-inline" } */
+
+#pragma GCC push_options
+#pragma GCC optimize("-O0")
+#pragma GCC pop_options
+
+inline int q(void); /* { dg-warning "body not available" } */
+inline int t(void)
+{
+ return q(); /* { dg-message "called from here" } */
+}
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 21a4525..58c6739 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -4009,7 +4009,7 @@ tree_inlinable_function_p (tree fn)
return false;
/* We only warn for functions declared `inline' by the user. */
- do_warning = (warn_inline
+ do_warning = (opt_for_fn (fn, warn_inline)
&& DECL_DECLARED_INLINE_P (fn)
&& !DECL_NO_INLINE_WARNING_P (fn)
&& !DECL_IN_SYSTEM_HEADER (fn));
@@ -4714,7 +4714,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id,
inform (DECL_SOURCE_LOCATION (cfun->decl),
"called from this function");
}
- else if (warn_inline
+ else if (opt_for_fn (fn, warn_inline)
&& DECL_DECLARED_INLINE_P (fn)
&& !DECL_NO_INLINE_WARNING_P (fn)
&& !DECL_IN_SYSTEM_HEADER (fn)