This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/36631] New: [4.3 Regression] attribute always_inline -> sorry, unimplemented: recursive inlining
- From: "josep dot m dot perez at bsc dot es" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Jun 2008 17:08:10 -0000
- Subject: [Bug c++/36631] New: [4.3 Regression] attribute always_inline -> sorry, unimplemented: recursive inlining
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following code generates a recursive inlining error in 4.3.[01] while it
did not in 4.[12]. Somehow, the bug requires having both always_inline
attributes.
template<typename T>
struct B {
struct C {
__attribute__((always_inline)) C(C const &c)
{
}
};
void __attribute__((always_inline)) g(C c)
{
}
};
void trigger(B<int> b, B<int>::C c)
{
b.g(c);
}
Cleanup4.ii: In function 'void trigger(B<int>, B<int>::C)':
Cleanup4.ii:8: sorry, unimplemented: inlining failed in call to 'void
B<T>::g(B<T>::C) [with T = int]': recursive inlining
Cleanup4.ii:15: sorry, unimplemented: called from here
--
Summary: [4.3 Regression] attribute always_inline -> sorry,
unimplemented: recursive inlining
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: josep dot m dot perez at bsc dot es
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36631