From: Jim Meyering Date: Tue, 12 Jun 2012 14:13:43 +0000 (+0200) Subject: stty: portability: accommodate CIL X-Git-Tag: v8.18~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c2181c870f4bc1abaee8ffd0b088ab05f87a61c;p=thirdparty%2Fcoreutils.git stty: portability: accommodate CIL * src/stty.c (main): Declare locals "mode" and "new_mode" to be static to ensure that each is initialized to zero, *including* all padding. While gcc clears padding of a local automatic initialized to "{ 0, }", CIL does not, and the C99 standard is not clear on this issue. Reported by Edward Schwartz. See http://bugs.gnu.org/11675 for details. --- diff --git a/THANKS.in b/THANKS.in index b9a6c64af1..51b2c7dda7 100644 --- a/THANKS.in +++ b/THANKS.in @@ -172,6 +172,7 @@ Doug Coleman coleman@iarc1.ece.utexas.edu Doug McLaren dougmc@comco.com Dragos Harabor dharabor@us.oracle.com Duncan Roe duncanr@optimation.com.au +Edward Schwartz edmcman@cmu.edu Edward Welbourne eddy@opera.com Edzer Pebesma Edzer.Pebesma@rivm.nl Egmont Koblinger egmont@uhulinux.hu diff --git a/src/stty.c b/src/stty.c index a3fc3dd398..83b502cbc4 100644 --- a/src/stty.c +++ b/src/stty.c @@ -730,7 +730,7 @@ main (int argc, char **argv) { /* Initialize to all zeroes so there is no risk memcmp will report a spurious difference in an uninitialized portion of the structure. */ - struct termios mode = { 0, }; + static struct termios mode; enum output_type output_type; int optc; @@ -1003,7 +1003,7 @@ main (int argc, char **argv) { /* Initialize to all zeroes so there is no risk memcmp will report a spurious difference in an uninitialized portion of the structure. */ - struct termios new_mode = { 0, }; + static struct termios new_mode; if (tcsetattr (STDIN_FILENO, TCSADRAIN, &mode)) error (EXIT_FAILURE, errno, "%s", device_name);