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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:811a475ea3fcc55ee4aea7c81171891ef19dfc25

commit r10-6500-g811a475ea3fcc55ee4aea7c81171891ef19dfc25
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Feb 7 11:01:14 2020 +0100

    arm: Fix up arm installed unwind.h for use in pedantic modes [PR93615]

    As the following testcase shows, unwind.h on ARM can't be (starting with
GCC
    10) compiled with -std=c* modes, only -std=gnu* modes.
    The problem is it uses asm keyword, which isn't a keyword in those modes
    (system headers vs. non-system ones don't make a difference here).
    glibc and other installed headers use __asm or __asm__ keywords instead
that
    work fine in both standard and gnu modes.

    While there, as it is an installed header, I think it is also wrong to
    completely ignore any identifier namespace rules.
    The generic unwind.h defines just _Unwind* namespace identifiers plus
    _sleb128_t/_uleb128_t (but e.g. unlike libstdc++/glibc headers doesn't
    uglify operand names), the ARM unwind.h is much worse here.  I've just
    changed the gnu_Unwind_Find_got function at least not be in user identifier
    namespace, but perhaps it would be good to go further and rename e.g.
    or e.g.
      typedef _Unwind_Reason_Code (*personality_routine) (_Unwind_State,
          _Unwind_Control_Block *, _Unwind_Context *);
    in unwind-arm-common.h.

    2020-02-07  Jakub Jelinek  <ja...@redhat.com>

        PR target/93615
        * config/arm/unwind-arm.h (gnu_Unwind_Find_got): Rename to ...
        (_Unwind_gnu_Find_got): ... this.  Use __asm instead of asm.  Remove
        trailing :s in asm.  Formatting fixes.
        (_Unwind_decode_typeinfo_ptr): Adjust caller.

        * gcc.dg/pr93615.c: New test.

Reply via email to