From: Martin Liska Date: Tue, 7 Jan 2020 09:15:38 +0000 (+0100) Subject: Make warn_inline Optimization option. X-Git-Tag: upstream/12.2.0~19260 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a924bffba921d568fbd65210857e1b5031776bb8;p=platform%2Fupstream%2Fgcc.git Make warn_inline Optimization option. 2020-01-07 Martin Liska 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 PR tree-optimization/92860 * gcc.dg/pr92860-2.c: New test. From-SVN: r279947 --- 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 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 + + 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 PR tree-optimization/92860 + * gcc.dg/pr92860-2.c: New test. + +2020-01-07 Martin Liska + + PR tree-optimization/92860 * gcc.dg/pr92860.c: New test. 2020-01-07 Jakub Jelinek 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)