Hi, > That seems like a bug in the aarch64-darwin port. > 1.0q should definitely be __float128 rather than _Float128.
Is there a simple way to test what type 1.0q is, in C? I tried using _Generic, but it says > a.c:7:52: error: ‘_Generic’ specifies two compatible types > 7 | int i = _Generic(0.q, default: 0, __float128: 1, _Float128: 2); > | ^~~~~~~~~ > a.c:7:37: note: compatible type is here > 7 | int i = _Generic(0.q, default: 0, __float128: 1, _Float128: 2); > | ^~~~~~~~~~ Then: > /* For C, let float128t_type_node (__float128 in some backends) be the > same type as float128_type_node (_Float128), for C++ let those > be distinct types that mangle and behave differently. */ OK so my mistake is in not defining float128t_type_node in the aarch64-darwin port. I will do that. Am I correct in reading that this “new” way of handling extended types in C++ was introduced in 2022-09-27? If so, my port to aarch64-darwin was done two years ago, and that explains why I missed that entirely… Thanks a lot Jakub for the help! FX