-Werror now enabled by default
diff mbox

Message ID 54889123.2030608@linux.vnet.ibm.com
State New
Headers show

Commit Message

Adhemerval Zanella Dec. 10, 2014, 6:29 p.m. UTC
On 10-12-2014 14:24, Joseph Myers wrote:
> On Wed, 10 Dec 2014, Andreas Schwab wrote:
>
>> In other words, you are forcing everyone to use --disable-werror now.
> That's the opposite of what I said.  By "warning suppression" I mean use 
> of the DIAG_* macros, not --disable-werror.
>
Something like that:


I still trying to figure out why the test for MAXLGM is necessary (it seems redundant
to me, since for overflow it will be generate by the log call itself).  Anyway, I
know this is not the perfect solution, but I would like to make powerpc builds
cleanly without resorting in --disable-werror.

Comments

Joseph Myers Dec. 10, 2014, 6:37 p.m. UTC | #1
On Wed, 10 Dec 2014, Adhemerval Zanella wrote:

> Something like that:
> 
> diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
> index 1961355..641cfd6 100644
> --- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
> +++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
> @@ -70,12 +70,16 @@
> 
>  #include <math.h>
>  #include <math_private.h>
> +#include <libc-internal.h>
> 
> +DIAG_PUSH_NEEDS_COMMENT;
> +DIAG_IGNORE_NEEDS_COMMENT (4.6, "-Woverflow");

Well, *with the comment* explaining the warning and referring to the 
existing open bug for it.  Never add diagnostic suppression macros without 
appropriate comments explaining the suppression.

> I still trying to figure out why the test for MAXLGM is necessary (it 
> seems redundant to me, since for overflow it will be generate by the log 
> call itself).  Anyway, I know this is not the perfect solution, but I 

In some rounding modes, without the MAXLGM test you'd get LDBL_MAX 
(finite) as the overflowed result from (x - 0.5L) * __logl (x), and then 
adding (negative) q (== ls2pi - x) would result in a return other than 
LDBL_MAX, which would not be correct for overflow.
Richard Henderson Dec. 11, 2014, 4:28 p.m. UTC | #2
On 12/10/2014 10:29 AM, Adhemerval Zanella wrote:
>  static const long double huge = 1.0e4000L;

__builtin_huge_vall() ?  That would suppress the werror for this line too...


r~
Adhemerval Zanella Dec. 11, 2014, 4:45 p.m. UTC | #3
On 11-12-2014 14:28, Richard Henderson wrote:
> On 12/10/2014 10:29 AM, Adhemerval Zanella wrote:
>>  static const long double huge = 1.0e4000L;
> __builtin_huge_vall() ?  That would suppress the werror for this line too...
>
>
> r~
>
I pushed a patch using LDBL_MAX as Joseph suggestion.

Patch
diff mbox

diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
index 1961355..641cfd6 100644
--- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
@@ -70,12 +70,16 @@ 

 #include <math.h>
 #include <math_private.h>
+#include <libc-internal.h>

+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (4.6, "-Woverflow");
 static const long double PIL = 3.1415926535897932384626433832795028841972E0L;
 static const long double MAXLGM = 1.0485738685148938358098967157129705071571E4928L;
 static const long double one = 1.0L;
 static const long double zero = 0.0L;
 static const long double huge = 1.0e4000L;
+DIAG_POP_NEEDS_COMMENT;

 /* log gamma(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x P(1/x^2)
    1/x <= 0.0741 (x >= 13.495...)