aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land.
In D155572#4646353 <https://reviews.llvm.org/D155572#4646353>, @tbaeder wrote: > In D155572#4645997 <https://reviews.llvm.org/D155572#4645997>, @aaron.ballman > wrote: > >> 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. > > I know that much, I guess I was confused by the diagnostics: > > ../clang/test/AST/Interp/complex.cpp:121:18: warning: plain '_Complex' > requires a type specifier; assuming '_Complex double' > 121 | using Gobble = _Complex Frobble; > | ^ > | double Yeah, that diagnostic could stand to be improved; but is orthogonal to your patch. LGTM though there's a comment on the test cases you should peek at. ================ Comment at: clang/test/AST/Interp/complex.cpp:119-124 + 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, ""); ---------------- Should this be under the `Sub` namespace instead of hanging out by itself? 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