This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [cxx-abi-dev] Re: Mistake in C++ ABI substitution rules?


Thanks all - the "must" interpretation seemed most sensible to me too.

Incidentally, the kernel guy now reports that he has a remangler
capable of converting all the 2.95 mangled symbols in Darwin kernel
and drivers to their 3.1 counterparts.  Next is to try booting a
3.1-compiled kernel and see what happens when the 3.1 base classes
actually load the 2.95-compiled derived classes that make up the
drivers...

Stan

Jim Dehnert wrote:
> 
> It was certainly intended as must.  My mistake, probably.  As Joe
> points out, it's not portable otherwise, so there's not much choice.
> 
> Jim
> 
> Joe Buck wrote:
> >
> > > > "Logically, the substitutable components of a mangled name are
> > > > considered left-to-right, components before the composite structure
> > > > of which they are a part. If a component has been encountered
> > > > before, it is substituted as described below. This decision is
> > > > independent of whether its components have been substituted,
> > > > so an implementation MAY OPTIMIZE by considering large structures
> > > > for substitution before their components. If a component has not
> > > > been encountered before, its mangling is identified, and it is
> > > > added to a dictionary of substitution candidates. No entity is
> > > > added to the dictionary twice." (emphasis mine)
> >
> > Mark writes:
> > > I think that "may" should be "must".
> >
> > If all the folks who implemented the ABI interpreted it that way, we
> > have no problem with s/may/must/.  But if some did not, then we don't
> > have a portable ABI, someone will have to make changes.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]