From 5c2181c870f4bc1abaee8ffd0b088ab05f87a61c Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 12 Jun 2012 16:13:43 +0200 Subject: [PATCH] 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. --- THANKS.in | 1 + src/stty.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) 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); -- 2.47.2