Re: GCC Cauldron: Notes from the C++ ABI BOF

2013-01-24 Thread Jason Merrill
On 01/22/2013 07:42 PM, Cary Coutant wrote: I believe we required an explicit attribute on the forward declaration in such a case. The question is, what do we want to do for a user type that, say, has a std::string field. Rejecting the program would be non-conforming, but otherwise we're lik

Re: GCC Cauldron: Notes from the C++ ABI BOF

2013-01-22 Thread Cary Coutant
>> Normally, the version identifier is applied to a type. It then >> propagates to any declaration using that type, whether it's another >> type or function or variable. For struct/union/class types, if any >> member or base class has an attached version identifier (excluding >> static data members

Re: GCC Cauldron: Notes from the C++ ABI BOF

2013-01-22 Thread Jason Merrill
On 01/10/2013 08:58 PM, Cary Coutant wrote: Normally, the version identifier is applied to a type. It then propagates to any declaration using that type, whether it's another type or function or variable. For struct/union/class types, if any member or base class has an attached version identifier

Re: GCC Cauldron: Notes from the C++ ABI BOF

2013-01-10 Thread Cary Coutant
> We had a useful discussion about C++11 ABI issues at the GNU Tools > Cauldron (http://gcc.gnu.org/wiki/cauldron2012). The approach will be > shaped over time, but the general idea is as follows. > > We will modify g++ to support a type attribute indicating the version > of the type, as a string.

Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-08-16 Thread Jonathan Wakely
On 20 July 2012 14:04, Jonathan Wakely wrote: > On 20 July 2012 12:43, Jakub Jelinek wrote: >> using a new std::list and std::pair, or the old one (well, std::pair is a >> bad example probably, std::string and std::list is good, what other types we >> are going to change?). > > I need to add a new

Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-20 Thread Jonathan Wakely
On 20 July 2012 12:43, Jakub Jelinek wrote: > using a new std::list and std::pair, or the old one (well, std::pair is a > bad example probably, std::string and std::list is good, what other types we > are going to change?). I need to add a new virtual function and rename an existing virtual functi

Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-20 Thread Jakub Jelinek
On Wed, Jul 11, 2012 at 02:47:37PM +0200, Michael Matz wrote: > On Wed, 11 Jul 2012, Ian Lance Taylor wrote: > > > We will modify g++ to support a type attribute indicating the version of > > the type, as a string. This type attribute will be inherited by any > > other type that uses it, as a c

Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-11 Thread Gabriel Dos Reis
On Wed, Jul 11, 2012 at 6:18 AM, Ian Lance Taylor wrote: > My version of Cary's notes (I just wrote this on my Google+ stream): > > We had a useful discussion about C++11 ABI issues at the GNU Tools > Cauldron (http://gcc.gnu.org/wiki/cauldron2012). The approach will be > shaped over time, but th

Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-11 Thread Michael Matz
Hi, On Wed, 11 Jul 2012, Ian Lance Taylor wrote: > We will modify g++ to support a type attribute indicating the version of > the type, as a string. This type attribute will be inherited by any > other type that uses it, as a class/struct member or via inheritance. > Type attributes will be

Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-11 Thread Ian Lance Taylor
My version of Cary's notes (I just wrote this on my Google+ stream): We had a useful discussion about C++11 ABI issues at the GNU Tools Cauldron (http://gcc.gnu.org/wiki/cauldron2012). The approach will be shaped over time, but the general idea is as follows. We will modify g++ to support a type

GCC Cauldron: Notes from the C++ ABI BOF

2012-07-11 Thread Cary Coutant
string & list changes - function w/ string arg - classes w/ string members - global variables - link c++98 & c++0x together - link existing c++98 .o & new c++-x .o - link at runtime c++98 .so & new c++0x .so HP: attribute on type propagates to: - function (params or return type) - structs w/ mem