https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93743
Bug ID: 93743 Summary: swapped arguments in atan2l Product: gcc Version: 9.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: development at drmh dot de Target Milestone: --- Created attachment 47843 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47843&action=edit all files to reproduce Hi. Compared to atan2() the atan2l() function gets their arguments swapped, it is reproducable by the attached script and sourcecode. I checked aginast clang which doesn't have the issue. Thanks. #include <stdio.h> #include <math.h> void test ( const long double y, const long double x ) { const long double ldbl_n = atan2l (y, x); const long double ldbl_s = atan2l (x, y); // arguments swapped printf ("normal : y=%Lf, x=%Lf, atan2=%Lf\n", y, x, ldbl_n); printf ("swapped: y=%Lf, x=%Lf, atan2=%Lf\n", y, x, ldbl_s); if ( ldbl_n < 1.L || 1.L < ldbl_s ) { printf ("BUG!\n"); } const double dbl_n = atan2 (y, x); const double dbl_s = atan2 (x, y); // arguments swapped printf ("normal : y=%Lf, x=%Lf, atan2=%lf\n", y, x, dbl_n); printf ("swapped: y=%Lf, x=%Lf, atan2=%lf\n", y, x, dbl_s); if ( dbl_n < 1.L || 1.L < dbl_s ) { printf ("BUG!\n"); } printf ("\n"); } int main ( void ) { const long double y = 0.922766L; const long double x = 0.080466L; test (y, x); return 0; } gcc-output: normal : y=0.922766, x=0.080466, atan2=0.086981 swapped: y=0.922766, x=0.080466, atan2=1.483815 BUG! normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 clang-output: normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 normal : y=0.922766, x=0.080466, atan2=1.483815 swapped: y=0.922766, x=0.080466, atan2=0.086981 Full details attached in the tar-archive.