On Tue, 1 Jul 2014, Jonathan Wakely wrote:
Right, it looks as though that constructor has never been compiled or
tested before, so GCC is not only making the code faster but also
finding a bug :-)
The most obvious fix is to add:
template friend class IntrusiveRefCntPtr;
so that conversion fro
On 01/07/14 15:06 +0200, Markus Trippelsdorf wrote:
On 2014.06.26 at 14:06 +0100, Jonathan Wakely wrote:
DR1579 relaxes [class.copy]/32 so that expressions in return
statements can be looked up as rvalues even when they aren't the same
type as the function return type.
Implementing that seems a
On 01/07/14 16:10 +0200, Marc Glisse wrote:
On Tue, 1 Jul 2014, Markus Trippelsdorf wrote:
This patch cause yet another LLVM build error:
[...]
Reduced:
markus@x4 llvm_build % cat CompilerInvocation.ii
template class A
{
T Obj;
public:
T element_type;
A (T *);
template A (A &&p1) { p1.Obj
On Tue, 1 Jul 2014, Markus Trippelsdorf wrote:
This patch cause yet another LLVM build error:
[...]
Reduced:
markus@x4 llvm_build % cat CompilerInvocation.ii
template class A
{
T Obj;
public:
T element_type;
A (T *);
template A (A &&p1) { p1.Obj; }
template A (A &);
};
class B
{
pub
On 2014.06.26 at 14:06 +0100, Jonathan Wakely wrote:
> DR1579 relaxes [class.copy]/32 so that expressions in return
> statements can be looked up as rvalues even when they aren't the same
> type as the function return type.
>
> Implementing that seems as simple as removing the restriction on the
>
OK.
Jason
DR1579 relaxes [class.copy]/32 so that expressions in return
statements can be looked up as rvalues even when they aren't the same
type as the function return type.
Implementing that seems as simple as removing the restriction on the
types. Tested x86_64-linux, no regressions.
OK for trunk?
com