use explicit returns to avoid checker confusion
authorTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:30:03 +0000 (17:30 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:30:03 +0000 (17:30 +0000)
The checker does not understand the idiom

if (except.reason < 0) {
   do_cleanups (whatever);
   GDB_PY_HANDLE_EXCEPTION (except);
}

because it doesn't realize that the nested 'if' actually has the same
condition.

This fixes instances of this to be more explicit.

* python/py-breakpoint.c (bppy_get_commands): Use
explicit, unconditional return.
* python/py-frame.c (frapy_read_var): Likewise.
* python/python.c (gdbpy_decode_line): Likewise.

gdb/ChangeLog
gdb/python/py-breakpoint.c
gdb/python/py-frame.c
gdb/python/python.c

index 55df48c..666868f 100644 (file)
@@ -1,5 +1,12 @@
 2013-05-30  Tom Tromey  <tromey@redhat.com>
 
+       * python/py-breakpoint.c (bppy_get_commands): Use
+       explicit, unconditional return.
+       * python/py-frame.c (frapy_read_var): Likewise.
+       * python/python.c (gdbpy_decode_line): Likewise.
+
+2013-05-30  Tom Tromey  <tromey@redhat.com>
+
        * cp-namespace.c (cp_lookup_symbol_imports_or_template): Call
        do_cleanups on all return paths.
 
index eaa1bc5..87f1fdc 100644 (file)
@@ -492,7 +492,8 @@ bppy_get_commands (PyObject *self, void *closure)
   if (except.reason < 0)
     {
       do_cleanups (chain);
-      GDB_PY_HANDLE_EXCEPTION (except);
+      gdbpy_convert_exception (except);
+      return NULL;
     }
 
   cmdstr = ui_file_xstrdup (string_file, &length);
index 2615ddf..f960b08 100644 (file)
@@ -477,7 +477,8 @@ frapy_read_var (PyObject *self, PyObject *args)
       if (except.reason < 0)
        {
          do_cleanups (cleanup);
-         GDB_PY_HANDLE_EXCEPTION (except);
+         gdbpy_convert_exception (except);
+         return NULL;
        }
 
       if (!var)
index 690534f..c94198e 100644 (file)
@@ -653,7 +653,8 @@ gdbpy_decode_line (PyObject *self, PyObject *args)
     {
       do_cleanups (cleanups);
       /* We know this will always throw.  */
-      GDB_PY_HANDLE_EXCEPTION (except);
+      gdbpy_convert_exception (except);
+      return NULL;
     }
 
   if (sals.nelts)