This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] powerpc: Fix unitialized variable


On Thu, 11 Dec 2014, Adhemerval Zanella wrote:

> +       int truncating, connreset, n;
> +       /* There is the following warning on some architectures:
> +          'resplen' may be used uninitialized in this function
> +          [-Wmaybe-uninitialized]
> +          This is a false positive according to:
> +          https://www.sourceware.org/ml/libc-alpha/2014-12/msg00323.html
> +        */
> +       DIAG_PUSH_NEEDS_COMMENT;
> +       DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
> +       int resplen;
> +       DIAG_POP_NEEDS_COMMENT;

* Do you actually need this here, or only around the use of the variable?

* An actual analysis of why the variable can't be used uninitialized would 
be better than a URL.  I.e., if buf2 == NULL then this code won't be 
executed; if buf2 != NULL, then first time round the loop recvresp1 and 
recvresp2 will be 0 so this code won't be executed but "thisresplenp = 
&resplen;" followed by "*thisresplenp = rlen;" will be executed so that 
subsequent times round the loop resplen has been initialized.

* The version number in DIAG_IGNORE_NEEDS_COMMENT is the most recent GCC 
version with which the issue has been observed, not the oldest.

* A conditional __GNUC_PREREQ (4, 7) is needed around the 
DIAG_IGNORE_NEEDS_COMMENT call because 4.6 doesn't have 
-Wmaybe-uninitialized (if the warnings appear with 4.6, a #else case to 
use -Wuninitialized instead with 4.6 will be needed).

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]