This is the mail archive of the gcc-help@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: Why does -Wabi-tag complain when -std=c++03?


>>>> The ABI_CHANGE macro in the blog post is just an example of a macro
>>>> that might appear in a third-party library, it's not defined by GCC. I
>>>> thought the fact the example defines abi2::MyType made that fairly
>>>> obvious. That isn't defined by GCC either.
>>>
>>> Actually, no, its not fairly obvious. If that was the intention, then
>>> they only needed to state it.
>>
>> An example showing "abi2::MyType" is obviously not real code with real
>> names. That's just common sense.
>
> No, its not. I'm telling you this from first hand experience from reading it.
>
> My library does not have a problem; the issue is with with std::string
> and std::list. So I'm trying to figure out how to do the things needed
> to work with the updated std::string and std::list.
>
> I perform literal reads, and I don't like to make leaps. As soon as I
> leap, I'll be asked, "why the hell did you do that?".

Here's the actionable item to remove the ambiguity from ABI_CHANGE:

#ifdef MYLIB_ABI_CHANGE
inline namespace abi2 __attribute ((abi_tag)) {
  class MyType { ... };
  MyType fn();
}
#endif

That way, its clear the define is local to the library, and its not
coming from GCC or the runtime.

(Sorry to beleaguer the point).

Jeff


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