Bug 7622 - [3.2/3.3 regression] tree inliner fallout (regression relative to 2.95)
[3.2/3.3 regression] tree inliner fallout (regression relative to 2.95)
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: c
3.3
: P3 normal
: ---
Assigned To: Eric Botcazou
: ice-on-valid-code
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2002-08-17 05:36 UTC by Jan Hubicka
Modified: 2003-07-25 17:33 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Hubicka 2002-08-17 05:36:00 UTC
taking address of inline function forces it to be output even when it has been deferred for inlining. In case we are speaking about nested function of extern inline function like in the testcase:
extern inline t()
{
  int q()
{}
  return q;
}
the compiler dies as no RTL is generated for them.  I guess the function should not be output but I am not quite sure how to check this.

Release:
3.0.x, 3.1.x, 3.2.x, 3.3 prereleases

Environment:
i386-unkonwn-linux
Comment 1 Jan Hubicka 2002-08-17 05:36:00 UTC
Fix:
don't use weird extensions :)
Comment 2 Volker Reichelt 2002-11-16 14:04:00 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Confirmed.
    Regression from 2.95.3.
Comment 3 Eric Botcazou 2002-11-20 03:21:28 UTC
Responsible-Changed-From-To: unassigned->ebotcazou
Responsible-Changed-Why: Investigating.
Comment 4 Eric Botcazou 2002-12-04 12:38:08 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Fixed.
Comment 5 Eric Botcazou 2002-12-04 14:58:21 UTC
From: ebotcazou@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: c/7622
Date: 4 Dec 2002 14:58:21 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Changes by:	ebotcazou@gcc.gnu.org	2002-12-04 06:58:21
 
 Modified files:
 	gcc            : ChangeLog c-semantics.c 
 
 Log message:
 	PR c/7622
 	* c-semantics (genrtl_scope_stmt): Do not output inlined
 	nested functions that contain no code.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.16051&r2=1.16052
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-semantics.c.diff?cvsroot=gcc&r1=1.47&r2=1.48
 

Comment 6 Eric Botcazou 2002-12-04 20:28:35 UTC
From: ebotcazou@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: c/7622
Date: 4 Dec 2002 20:28:35 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_2-branch
 Changes by:	ebotcazou@gcc.gnu.org	2002-12-04 12:28:35
 
 Modified files:
 	gcc            : ChangeLog c-semantics.c 
 
 Log message:
 	PR c/7622
 	* c-semantics (genrtl_scope_stmt): Do not output inlined
 	nested functions that contain no code.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.13152.2.657.2.155&r2=1.13152.2.657.2.156
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-semantics.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.40.2.2&r2=1.40.2.2.4.1