Re: [patch] Use abi_tag attribute on std::list

2014-10-10 Thread Jonathan Wakely
On 03/10/14 15:49 +0100, Jonathan Wakely wrote: On 03/10/14 16:25 +0200, Marc Glisse wrote: On Fri, 3 Oct 2014, Jonathan Wakely wrote: This is the patch I intend to commit to make std::list::size() O(1) as required by C++11. This is an ABI change, so std::list will get tagged with abi_tag("cx

Re: [patch] Use abi_tag attribute on std::list

2014-10-03 Thread Marc Glisse
On Fri, 3 Oct 2014, Jonathan Wakely wrote: Marc, this is the relative diff to go back to what I had earlier, with the size in the _List_impl in case you want to aply it locally (the dg-error tests are off-by-one with this patch) Thanks. For PR 61347, to avoid offsetof, I will actually need to

Re: [patch] Use abi_tag attribute on std::list

2014-10-03 Thread Jonathan Wakely
On 03/10/14 15:49 +0100, Jonathan Wakely wrote: On 03/10/14 16:25 +0200, Marc Glisse wrote: Do you mind if I move (in a future patch once yours is committed) _M_size into _M_impl::_M_node as suggested in PR 61347? Gah, that's where I had it until earlier this week, and I looked at it and wonde

Re: [patch] Use abi_tag attribute on std::list

2014-10-03 Thread Jonathan Wakely
On 03/10/14 16:25 +0200, Marc Glisse wrote: On Fri, 3 Oct 2014, Jonathan Wakely wrote: This is the patch I intend to commit to make std::list::size() O(1) as required by C++11. This is an ABI change, so std::list will get tagged with abi_tag("cxx11") so that it mangles differently. Assuming

Re: [patch] Use abi_tag attribute on std::list

2014-10-03 Thread Marc Glisse
On Fri, 3 Oct 2014, Jonathan Wakely wrote: This is the patch I intend to commit to make std::list::size() O(1) as required by C++11. This is an ABI change, so std::list will get tagged with abi_tag("cxx11") so that it mangles differently. Assuming a future where we have both _GLIBCXX_ABI_TAG_

[patch] Use abi_tag attribute on std::list

2014-10-03 Thread Jonathan Wakely
This is the patch I intend to commit to make std::list::size() O(1) as required by C++11. This is an ABI change, so std::list will get tagged with abi_tag("cxx11") so that it mangles differently. I took a different approach to the way O(1) size() was implemented (and then reverted) for GCC 4.7.0