From patchwork Wed Aug 26 23:10:36 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Ellcey X-Patchwork-Id: 8471 Received: (qmail 128224 invoked by alias); 26 Aug 2015 23:10:45 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 128214 invoked by uid 89); 26 Aug 2015 23:10:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mailapp01.imgtec.com Message-ID: <1440630636.14154.19.camel@ubuntu-sellcey> Subject: Re: Don't use -Wno-uninitialized in math/ From: Steve Ellcey Reply-To: To: Roland McGrath CC: Joseph Myers , Chris Metcalf , Date: Wed, 26 Aug 2015 16:10:36 -0700 In-Reply-To: <20150826225743.1A8782C39E0@topped-with-meat.com> References: <1440173079.23512.36.camel@ubuntu-sellcey> <55DE1A17.5060706@ezchip.com> <1440627171.14154.13.camel@ubuntu-sellcey> <1440628824.14154.16.camel@ubuntu-sellcey> <20150826225743.1A8782C39E0@topped-with-meat.com> MIME-Version: 1.0 On Wed, 2015-08-26 at 15:57 -0700, Roland McGrath wrote: > Nothing should ever #include except the prologue of an > installed header file, and then only for the purpose of testing __USE_* > macros. If you want access to the various other __ macros (even ones that > are actually defined in features.h), you should #include . OK, here is a new version of the patch including sys/cdefs.h instead of features.h and moving the comments about the DIAG up with the actual DIAG use. I added some extra text to the DIAG comment also to try and explain why it is where it is. Steve Ellcey sellcey@imgtec.com 2015-08-26 Steve Ellcey * soft-fp/fmasf4.c: Add include of features.h. Move DIAG_PUSH_NEEDS_COMMENT, DIAG_IGNORE_NEEDS_COMMENT to front of file, move DIAG_POP_NEEDS_COMMENT to end of file. * soft-fp/fmadf4.c: Ditto. * soft-fp/fmatf4.c: Ditto. diff --git a/soft-fp/fmadf4.c b/soft-fp/fmadf4.c index da6749d..9330948 100644 --- a/soft-fp/fmadf4.c +++ b/soft-fp/fmadf4.c @@ -26,6 +26,19 @@ . */ #include +#include +/* R_e is not set in cases where it is not used in packing, but the + compiler does not see that it is set in all cases where it is + used, resulting in warnings that it may be used uninitialized. + The location of the warning differs in different versions of GCC, + it may be where R is defined using a macro or it may be where the + macro is defined. */ +DIAG_PUSH_NEEDS_COMMENT; +#if __GNUC_PREREQ (4, 7) +DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized"); +#else +DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized"); +#endif #include #include "soft-fp.h" #include "double.h" @@ -45,22 +58,13 @@ __fma (double a, double b, double c) FP_UNPACK_D (B, b); FP_UNPACK_D (C, c); FP_FMA_D (R, A, B, C); - /* R_e is not set in cases where it is not used in packing, but the - compiler does not see that it is set in all cases where it is - used, resulting in warnings that it may be used - uninitialized. */ - DIAG_PUSH_NEEDS_COMMENT; -#if __GNUC_PREREQ (4, 7) - DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized"); -#else - DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized"); -#endif FP_PACK_D (r, R); - DIAG_POP_NEEDS_COMMENT; FP_HANDLE_EXCEPTIONS; return r; } +DIAG_POP_NEEDS_COMMENT; + #ifndef __fma weak_alias (__fma, fma) #endif diff --git a/soft-fp/fmasf4.c b/soft-fp/fmasf4.c index b770a07..359d49c 100644 --- a/soft-fp/fmasf4.c +++ b/soft-fp/fmasf4.c @@ -26,6 +26,19 @@ . */ #include +#include +/* R_e is not set in cases where it is not used in packing, but the + compiler does not see that it is set in all cases where it is + used, resulting in warnings that it may be used uninitialized. + The location of the warning differs in different versions of GCC, + it may be where R is defined using a macro or it may be where the + macro is defined. */ +DIAG_PUSH_NEEDS_COMMENT; +#if __GNUC_PREREQ (4, 7) +DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized"); +#else +DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized"); +#endif #include #include "soft-fp.h" #include "single.h" @@ -45,22 +58,13 @@ __fmaf (float a, float b, float c) FP_UNPACK_S (B, b); FP_UNPACK_S (C, c); FP_FMA_S (R, A, B, C); - /* R_e is not set in cases where it is not used in packing, but the - compiler does not see that it is set in all cases where it is - used, resulting in warnings that it may be used - uninitialized. */ - DIAG_PUSH_NEEDS_COMMENT; -#if __GNUC_PREREQ (4, 7) - DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized"); -#else - DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized"); -#endif FP_PACK_S (r, R); - DIAG_POP_NEEDS_COMMENT; FP_HANDLE_EXCEPTIONS; return r; } +DIAG_POP_NEEDS_COMMENT; + #ifndef __fmaf weak_alias (__fmaf, fmaf) #endif diff --git a/soft-fp/fmatf4.c b/soft-fp/fmatf4.c index 880961c..9c99303 100644 --- a/soft-fp/fmatf4.c +++ b/soft-fp/fmatf4.c @@ -26,6 +26,19 @@ . */ #include +#include +/* R_e is not set in cases where it is not used in packing, but the + compiler does not see that it is set in all cases where it is + used, resulting in warnings that it may be used uninitialized. + The location of the warning differs in different versions of GCC, + it may be where R is defined using a macro or it may be where the + macro is defined. */ +DIAG_PUSH_NEEDS_COMMENT; +#if __GNUC_PREREQ (4, 7) +DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized"); +#else +DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized"); +#endif #include #include "soft-fp.h" #include "quad.h" @@ -45,20 +58,11 @@ __fmal (long double a, long double b, long double c) FP_UNPACK_Q (B, b); FP_UNPACK_Q (C, c); FP_FMA_Q (R, A, B, C); - /* R_e is not set in cases where it is not used in packing, but the - compiler does not see that it is set in all cases where it is - used, resulting in warnings that it may be used - uninitialized. */ - DIAG_PUSH_NEEDS_COMMENT; -#if __GNUC_PREREQ (4, 7) - DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized"); -#else - DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized"); -#endif FP_PACK_Q (r, R); - DIAG_POP_NEEDS_COMMENT; FP_HANDLE_EXCEPTIONS; return r; } +DIAG_POP_NEEDS_COMMENT; + weak_alias (__fmal, fmal)