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

            Bug ID: 118329
           Summary: avr defines __int24 but doesn't define
                    __GLIBCXX_TYPE_INT_N_0
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
                CC: avr at gjlay dot de
  Target Milestone: ---
            Target: avr

Targets that define integers with non-standard sizes should inform libstdc++ of
the existence and bitwidth of those types.

So avr should define __GLIBCXX_TYPE_INT_N_0 to __int24 and define
__GLIBCXX_BITSIZE_INT_N_0 to 24.

On IRC jakub said:

config/avr/avr-modes.def doesn't have the INT_N (PSI, 24); line after
FRACTIONAL_INT_MODE line
so, from middle-end POV, it is as if __int24 doesn't exist, and then the
backend probably registers it by hand
most likely it has been written like that before __intNN support was
generalized and maybe avr wasn't converted?
avr uses FRACTIONAL_INT_MODE while e.g. msp430 uses PARTIAL_INT_MODE, don't
remember the difference

Reply via email to