aaron.ballman added a comment. In D155572#4645995 <https://reviews.llvm.org/D155572#4645995>, @tbaeder wrote:
> In D155572#4542484 <https://reviews.llvm.org/D155572#4542484>, @aaron.ballman > wrote: > >> In D155572#4541403 <https://reviews.llvm.org/D155572#4541403>, @tbaeder >> wrote: >> >>> In D155572#4539457 <https://reviews.llvm.org/D155572#4539457>, >>> @aaron.ballman wrote: >>> >>>> Is this intended to not handle all the binary operators in this patch? >>> >>> Yes, just a subset for now. >>> >>>> And also, is this intended to only impact initializers? >>> >>> Yes, due to problems with (non-)initializers. This should work after >>> https://reviews.llvm.org/D156027 though. >> >> Okay, thanks for confirmation! The only outstanding thing is adding coverage >> for typedef types: >> >> using Frobble = float; >> using Bobble = _Complex float; >> using Gobble = _Complex Frobble; >> >> constexpr _Complex Frobble A = { 13.0, 2.0 }; >> constexpr Bobble B = { 2.0, 1.0 }; >> constexpr Gobble C = { 3.0, 5.0 }; >> constexpr _Complex float D = A - B; >> constexpr _Complex float E = C - B; >> static_assert(__real(D) == 11.0, ""); >> static_assert(__imag(D) == 1.0, ""); >> static_assert(__real(E) == 1.0, ""); >> static_assert(__imag(E) == 4.0, ""); > > https://godbolt.org/z/59c8Y4sqz - Is that even supposed to work? Hmmm, I think the answer is "no"... and "maybe." `_Complex` can only be followed by `float`, `double`, or `long double` specifically per the C standard. However, we also support `_Complex int` (and others) as an extension, which starts to make `_Complex` look more like `_Atomic` in that it augments an existing type, and so typedefs seem quite reasonable. But that's not your issue to worry about. Instead, let's go with this test: using Bobble = _Complex float; constexpr _Complex float A = { 13.0, 2.0 }; constexpr Bobble B = { 2.0, 1.0 }; constexpr _Complex float D = A - B; static_assert(__real(D) == 11.0, ""); static_assert(__imag(D) == 1.0, ""); https://godbolt.org/z/Mrxfjzrnz Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D155572/new/ https://reviews.llvm.org/D155572 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits