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

Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amylaar at gcc dot gnu.org

--- Comment #4 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> ---
(In reply to Georg-Johann Lay from comment #1)
> Author: gjl
> Date: Thu Sep 11 08:08:17 2014
> New Revision: 215152
> 
> URL: https://gcc.gnu.org/viewcvs?rev=215152&root=gcc&view=rev
> Log:
> gcc/
>       PR target/63223
>       * config/avr/avr.md (*tablejump.3byte-pc): New insn.
>       (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
>       (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
> libgcc/
>       PR target/63223
>       * config/avr/libgcc.S (__tablejump2__): Rewrite to use RAMPZ, ELPM
>       and R24 as needed.  Make work for all devices and .text locations.
>       (__do_global_ctors, __do_global_dtors): Use word addresses.

do_global_dtors is supposed to start at the start and increment from there.
I see it used to be half-way wrong and half-way correct.
(Starting at the start, decrementing for __AVR_HAVE_ELPM__, incrementing
otherwise.)
However, you now made it all the way use an incorrect order - starting at the
end and incrementing from there.
Is there a rationale for this?

Reply via email to