Discussion:
hypot error : '__builtin_choose_expr' requires a constant expression
Chunxia Du
2018-06-29 02:30:56 UTC
Permalink
Hi All,I got errors when I tried to use the function hypot. It said " '__builtin_choose_expr' requires a constant expression". I found the error occurs at "__tg_integer" in tgmath.h. It does not treat "(__typeof__(__e1))1.5 == 1" as a constantexpression. I am confused that why it's not a constant expression, and how should I fix this.

The code is as follows:


#include <tgmath.h>
int main()
{
double __complex__ z = 0.0;
hypot(__real__ z, __imag__ z);
return 0;
}
Looking forward to your reply!
Thanks and Regards,
Chunxia D
Jon Beniston
2018-06-29 08:42:54 UTC
Permalink
Hi Chunxia,

What compiler, target and version? It compiles ok for me.

Regards,
Jon

-----Original Message-----
From: newlib-***@sourceware.org [mailto:newlib-***@sourceware.org] On
Behalf Of Chunxia Du
Sent: 29 June 2018 03:31
To: newlib
Subject: hypot error : '__builtin_choose_expr' requires a constant
expression

Hi All,I got errors when I tried to use the function hypot. It said "
'__builtin_choose_expr' requires a constant expression". I found the error
occurs at "__tg_integer" in tgmath.h. It does not treat
"(__typeof__(__e1))1.5 == 1" as a constantexpression. I am confused that why
it's not a constant expression, and how should I fix this.

The code is as follows:


#include <tgmath.h>
int main()
{
double __complex__ z = 0.0;
hypot(__real__ z, __imag__ z);
return 0;
}
Looking forward to your reply!
Thanks and Regards,
Chunxia Du

Loading...