From: David Levine Date: Sun, 21 Dec 2014 16:31:41 +0000 (-0600) Subject: Rearranged code to avoid "might be clobbered by longjmp" warnings from X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/771706ac9fed2b902bd4d3ddccb15ee27b0f58ae?ds=inline Rearranged code to avoid "might be clobbered by longjmp" warnings from gcc 4.9.2 --- diff --git a/uip/mhlsbr.c b/uip/mhlsbr.c index 28d48947..9dbc98cb 100644 --- a/uip/mhlsbr.c +++ b/uip/mhlsbr.c @@ -875,8 +875,9 @@ parse (void) static void process (char *folder, char *fname, int ofilen, int ofilec) { - char *cp = NULL; - FILE *fp = NULL; + /* static to prevent "might be clobbered" warning from gcc 4.9.2: */ + static char *cp = NULL; + static FILE *fp = NULL; struct mcomp *c1; struct stat st; struct arglist *ap; @@ -913,12 +914,12 @@ process (char *folder, char *fname, int ofilen, int ofilec) if (arglist_head) fmt_free(NULL, 1); - default: + default: if (ontty != PITTY) SIGNAL (SIGINT, SIG_IGN); - if (mhl_action == NULL && fp != stdin) + if (mhl_action == NULL && fp != stdin && fp != NULL) fclose (fp); - free (cp); + free (cp); if (holder.c_text) { free (holder.c_text); holder.c_text = NULL; diff --git a/uip/prompter.c b/uip/prompter.c index 304c9a5d..58347d47 100644 --- a/uip/prompter.c +++ b/uip/prompter.c @@ -331,8 +331,7 @@ getln (char *buffer, int n) char *cp; static int quoting = 0; - cp = buffer; - *cp = 0; + *buffer = 0; switch (setjmp (sigenv)) { case OK: @@ -348,6 +347,9 @@ getln (char *buffer, int n) return NOTOK; } + cp = buffer; + *cp = 0; + for (;;) { switch (c = getchar ()) { case EOF: