Why does this testcase fail in clang-60?

This testcase:

# include <complex>
# include <math.h>

# define _I ((complex_t)(1i))
typedef std::complex<double> complex_t;

complex_t f(const double omega) {
complex_t p = cos (omega) + _I * sin (omega);
return p;

works in clang40 and clang50, but fails in clang60:

c.c:9:32: error: implicit conversion from '_Complex int' to 'double' is not permitted in C++
complex_t p = cos (omega) + _I * sin (omega);
c.c:5:26: note: expanded from macro '_I'
# define _I ((complex_t)(1i))
~ ^~
1 error generated.


I believe the default standard did change to c++14. How did you compile?
Could you make a case in godbolt.org?

I compiled without arguments. Adding -std=c++11 or -std=c++98 doesn't change the error message.


[Please reply *only* to the list and do not include my email directly
in the To: or Cc: of your reply; otherwise I will not see your reply.

In article <d48cbfe3-43bf-625d-4e68-b785987aa754@rawbw.com>,
    Yuri via cfe-users <cfe-users@lists.llvm.org> writes: