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

            Bug ID: 100805
           Summary: __int128 should be disabled for non-extended -std=
                    options
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dje at gcc dot gnu.org
  Target Milestone: ---

The __int128 extended type should not be enabled in strict standard mode, e.g.,
not gnu extended standard.

auto typechk = 0 ? 9223372036854775808 : -1;
unsigned long &typechk_p = &typeck;

64 bit mode:
error: cannot convert `__int128*' to `long unsigned int*' in initialization

32 bit mode:
error: invalid conversion from `long long int*' to `long long unsigned int*'
[-fpermissive]

using a signed type that is too small to preserve the value.

It seems that promoting the value to a type that is an extension is incorrect
in strict standard mode.

Reply via email to