emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 7791005: Check instead of relying on NOTREACHED


From: Paul Eggert
Subject: [Emacs-diffs] master 7791005: Check instead of relying on NOTREACHED
Date: Sat, 31 Aug 2019 14:01:53 -0400 (EDT)

branch: master
commit 7791005544836f93542e8277ad5897f8f5920f05
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Check instead of relying on NOTREACHED
    
    NOTREACHED was designed for traditional lint decades ago,
    and _Noreturn now normally subsumes its function.
    In the one case in Emacs where NORETURN might help and _Noreturn does
    not, check for NOTREACHED instead of assuming it.
    * lib-src/etags.c (main):
    * src/xterm.c (x_connection_closed):
    Remove NOTREACHED after a call to a _Noreturn function, as NOTREACHED
    is no longer needed there.  Also, one of the NOTREACHEDs was
    misplaced, which defeated traditional lint checking anyway.
    * lib-src/pop.c (pop_getline): Redo so as to not need NOTREACHED.
    * src/emacs.c (main): Use eassume (false) rather than NOTREACHED,
    so that running with ENABLE_CHECKING catches any internal error
    causing the toplevel Frecursive_edit to return.
---
 lib-src/etags.c |  4 ----
 lib-src/pop.c   | 10 +++++-----
 src/emacs.c     |  3 +--
 src/xterm.c     |  1 -
 4 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/lib-src/etags.c b/lib-src/etags.c
index 036c485..6409407 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -1146,7 +1146,6 @@ main (int argc, char **argv)
          {
            error ("-o option may only be given once.");
            suggest_asking_for_help ();
-           /* NOTREACHED */
          }
        tagfile = optarg;
        break;
@@ -1208,7 +1207,6 @@ main (int argc, char **argv)
       case 'w': no_warnings = true;                            break;
       default:
        suggest_asking_for_help ();
-       /* NOTREACHED */
       }
 
   /* No more options.  Store the rest of arguments. */
@@ -1227,13 +1225,11 @@ main (int argc, char **argv)
 
   if (help_asked)
     print_help (argbuffer);
-    /* NOTREACHED */
 
   if (nincluded_files == 0 && file_count == 0)
     {
       error ("no input files specified.");
       suggest_asking_for_help ();
-      /* NOTREACHED */
     }
 
   if (tagfile == NULL)
diff --git a/lib-src/pop.c b/lib-src/pop.c
index e4bd6c0..9a0dd8c 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -1275,7 +1275,7 @@ pop_getline (popserver server, char **line)
       server->buffer_index = 0;
     }
 
-  while (1)
+  while (true)
     {
       /* There's a "- 1" here to leave room for the null that we put
          at the end of the read data below.  We put the null there so
@@ -1288,7 +1288,7 @@ pop_getline (popserver server, char **line)
            {
              strcpy (pop_error, "Out of memory in pop_getline");
              pop_trash (server);
-             return (-1);
+             break;
            }
        }
       ret = RECV (server->file, server->buffer + server->data,
@@ -1298,13 +1298,13 @@ pop_getline (popserver server, char **line)
          snprintf (pop_error, ERROR_MAX, "%s%s",
                    GETLINE_ERROR, strerror (errno));
          pop_trash (server);
-         return (-1);
+         break;
        }
       else if (ret == 0)
        {
          strcpy (pop_error, "Unexpected EOF from server in pop_getline");
          pop_trash (server);
-         return (-1);
+         break;
        }
       else
        {
@@ -1332,7 +1332,7 @@ pop_getline (popserver server, char **line)
        }
     }
 
-  /* NOTREACHED */
+  return -1;
 }
 
 /*
diff --git a/src/emacs.c b/src/emacs.c
index cc58183..53572d7 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -2084,8 +2084,7 @@ Using an Emacs configured with --with-x-toolkit=lucid 
does not have this problem
 
   /* Enter editor command loop.  This never returns.  */
   Frecursive_edit ();
-  /* NOTREACHED */
-  return 0;
+  eassume (false);
 }
 
 /* Sort the args so we can find the most important ones
diff --git a/src/xterm.c b/src/xterm.c
index 0d22406..b761eaf 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10044,7 +10044,6 @@ For details, see etc/PROBLEMS.\n",
     {
       fprintf (stderr, "%s\n", error_msg);
       Fkill_emacs (make_fixnum (70));
-      /* NOTREACHED */
     }
 
   totally_unblock_input ();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]