This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/33564] New: A static inline function as a parameter of another static inline function is not inlined.
- From: "michaelferguson at acm dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Sep 2007 14:26:02 -0000
- Subject: [Bug c/33564] New: A static inline function as a parameter of another static inline function is not inlined.
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This is a duplicate of bug 1601, which I can't reopen.
This bug is still present on 4.1.2-13 (RedHat, 20070626) and 3.4.6-3 (RedHat
20060404). Looking at the produced assembly, f2 and fun are both produced; the
assembly should only produce fun and inline both f1 and f2. I havn't tested it
on 4.2.1 yet, but I'm reopening it because it was reported as fixed years ago.
I'm compiling the test given below with:
gcc -c -O3 --save-temps inline_test.c
How-To-Repeat (from bug 1601):
static inline int
f1( int (*f)(int y), int q )
{
return( (*f)( q ) );
}
static inline int
f2( int z )
{
return( z ^ 32 );
}
int fun( int x )
{
return( f1( &f2, x ) );
}
--
Summary: A static inline function as a parameter of another
static inline function is not inlined.
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michaelferguson at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33564