This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/33763] [4.1/4.2/4.3 Regression] Bogus inlining failed in call to `xxx': redefined extern inline functions are not considered for inlining
- From: "hubicka at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Jan 2008 13:55:35 -0000
- Subject: [Bug tree-optimization/33763] [4.1/4.2/4.3 Regression] Bogus inlining failed in call to `xxx': redefined extern inline functions are not considered for inlining
- References: <bug-33763-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from hubicka at gcc dot gnu dot org 2008-01-12 13:55 -------
I can definitely commit the patch to silence the (IMO valid) diagnostics.
However, why programs are using always_inline and extern inline combination at
all? Just extern inline should be enough.
/* For GNU C extern inline functions disregard inline limits. */
if (DECL_EXTERNAL (fndecl)
&& DECL_DECLARED_INLINE_P (fndecl))
DECL_DISREGARD_INLINE_LIMITS (fndecl) = 1;
So perhaps just modifying glibc headers to not do both would do the trick?
I agree that solving this problem correctly via two functions (not only bodies,
but simply two declarations) is probably bit tricky for stage3. We however have
related PR34609 and PR31529 demonstrating same problem in different context.
Honza
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33763