PR57698, only report errors from early inlining when optimization is turned

PR57698, only report errors from early inlining when optimization is turned
off.

	PR middle-end/57698
	* tree-inline.c (expand_call_inline): Emit errors during
	early_inlining only if optimization is not turned on.

	PR middle-end/57698
	* gcc.c-torture/compile/pr57698.c: New test.
	* gcc.c-torture/compile/pr43791.c: Remove prune output
	directive.
	* gcc.c-torture/compile/pr44043.c: Ditto.

From-SVN: r201039
This commit is contained in:
Sriraman Tallam 2013-07-18 19:24:22 +00:00 committed by Sriraman Tallam
parent 0f9cdef43a
commit df9dda2d15
6 changed files with 37 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2013-07-18 Sriraman Tallam <tmsriram@google.com>
PR middle-end/57698
* tree-inline.c (expand_call_inline): Emit errors during
early_inlining only if optimization is not turned on.
2013-07-18 David Malcolm <dmalcolm@redhat.com>
* passes.def: New.

View File

@ -1,3 +1,11 @@
2013-07-18 Sriraman Tallam <tmsriram@google.com>
PR middle-end/57698
* gcc.c-torture/compile/pr57698.c: New test.
* gcc.c-torture/compile/pr43791.c: Remove prune output
directive.
* gcc.c-torture/compile/pr44043.c: Ditto.
2013-07-18 Wei Mi <wmi@google.com>
PR rtl-optimization/57878

View File

@ -18,5 +18,3 @@ void fasttrylock(void (*slowfn)()) {
void trylock(void) {
fasttrylock(slowtrylock);
}
/* { dg-prune-output "(inlining failed in call to always_inline.*indirect function call with a yet undetermined callee|called from here)" } */

View File

@ -85,5 +85,3 @@ int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
{
raw_send_hdrinc(sk, msg->msg_iov, len, (void *)0, msg->msg_flags);
}
/* { dg-prune-output "(inlining failed in call to always_inline.*indirect function call with a yet undetermined callee|called from here)" } */

View File

@ -0,0 +1,19 @@
typedef int (*IsAcceptableThis) (const int );
inline int
fn1 (IsAcceptableThis p1)
{
p1 (0);
return 0;
}
__attribute__ ((always_inline))
inline int fn2 (const int a)
{
return 0;
}
void
fn3 ()
{
fn1 (fn2);
}

View File

@ -3905,6 +3905,10 @@ expand_call_inline (basic_block bb, gimple stmt, copy_body_data *id)
for inlining, but we can't do that because frontends overwrite
the body. */
&& !cg_edge->callee->local.redefined_extern_inline
/* During early inline pass, report only when optimization is
not turned on. */
&& (cgraph_global_info_ready
|| !optimize)
/* PR 20090218-1_0.c. Body can be provided by another module. */
&& (reason != CIF_BODY_NOT_AVAILABLE || !flag_generate_lto))
{