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.