mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-06 11:40:50 +08:00
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
This commit is contained in:
parent
a86689f5e9
commit
a924bffba9
@ -1,3 +1,13 @@
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
13
gcc/testsuite/gcc.dg/pr92860-2.c
Normal file
13
gcc/testsuite/gcc.dg/pr92860-2.c
Normal file
@ -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" } */
|
||||
}
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user