http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45267

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> 2011-04-19 
00:31:21 UTC ---
The language issue here is that 14.7.3/12 says,

An explicit specialization of a function template is inline only if it is
declared with the inline specifier or defined as deleted, and independently of
whether its function template is inline.

So in this case G++ is not propagating inline-related flags from the in-class
declaration to the explicit specialization.

It's not clear to me that the above passage should apply to this case, since
the declaration in the class template is not itself a function template.  But
it probably should if there is a definition in the class body, so perhaps the
most straightforward thing is to have it apply in this case as well.

Since we aren't propagating inline flags, I suppose we should prune the
always_inline attribute from DECL_ATTRIBUTES as well.

Reply via email to