Compiling following code get error below.
Once I remove template<> from class R it inlines fine.
Yuri
--- begin code ---
#define inline __attribute__ ((__always_inline__))
template<class T> struct R { inline void R::r(int& c); };
template<class T> inline void R<T>::r(int& c) { }
class BB {};
void fffff(R<BB> *rr) {
int i;
rr->r(i);
}
--- end code ---
--- begin error ---
i.C: In function `void fffff(R<BB>*)':
i.C:6: sorry, unimplemented: inlining failed in call to 'void R<T>::r(int&)
[with T = BB]': function not inlinable
i.C:11: sorry, unimplemented: called from here
i.C: In function `void fffff(R<BB>*)':
i.C:6: sorry, unimplemented: inlining failed in call to 'void R<T>::r(int&)
[with T = BB]': function not inlinable
i.C:11: sorry, unimplemented: called from here
--- end error ---
--
Summary: Mandatory inlining of templetized class member fails for
no reason
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: yuri at tsoft dot com
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20275