https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88684

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #4)
> Given that the GCC default is
> #ifndef __GXX_MERGED_TYPEINFO_NAMES
> // By default, typeinfo names are not merged.
> #define __GXX_MERGED_TYPEINFO_NAMES 0
> #endif
> we should use strcmp on Linux too.
> Note, what libsanitizer does doesn't match what typeinfo does, which is:
>       return ((__name == __arg.__name)
>               || (__name[0] != '*' &&
>                   __builtin_strcmp (__name, __arg.__name) == 0));
> for equality and
>     { return (__name[0] == '*' && __arg.__name[0] == '*')
>         ? __name < __arg.__name
>         : __builtin_strcmp (__name, __arg.__name) < 0; }
> for before.

Do you suggest to propose an upstream change where I'll enable that for Linux
and I'll also adjust the equality operator? Or do we prefer to adjust that
locally GCC project?

Reply via email to