This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] new macro: gdb_assert_not_reached


Hi.

This patch adds new macro gdb_assert_not_reached, and replaces
all existing uses of gdb_assert (0) with the new macro.

I will check this in in two days if there are no objections.

2010-08-16  Doug Evans  <dje@google.com>

	* gdb_assert.h (gdb_assert_not_reached): New macro.
	(gdb_assert_fail): Fix typo in comment.
	* avr-tdep.c (avr_return_value): Use gdb_assert_not_reached instead of
	gdb_assert (0).
	* darwin-nat.c (darwin_check_new_threads): Ditto.
	* dwarf2read.c (dwarf2_get_section_info): Ditto.
	(munmap_section_buffer): Ditto.
	* m32c-tdep.c (make_types): Ditto.
	(m32c_decode_srcdest4, m32c_decode_sd23, m32c_frame_base): Ditto.
	* macroexp.c (get_character_constant): Ditto.
	(get_string_literal): Ditto.
	* mep-tdep.c (mep_pseudo_cr_size): Ditto.
	(mep_pseudo_cr_index, mep_register_type): Ditto.
	(mep_pseudo_register_read, mep_pseudo_register_write): Ditto.
	(mep_get_insn, mep_analyze_prologue): Ditto.
	* objfiles.c (qsort_cmp): Ditto.
	* prologue-value.c (pv_is_identical): Ditto.
	* record.c (record_get_loc): Ditto.
	* value.c (value_static_field): Ditto.
	* xtensa-tdep.c (call0_track_op): Ditto.

Index: gdb_assert.h
===================================================================
RCS file: /cvs/src/src/gdb/gdb_assert.h,v
retrieving revision 1.11
diff -u -p -r1.11 gdb_assert.h
--- gdb_assert.h	1 Jan 2010 07:31:32 -0000	1.11
+++ gdb_assert.h	16 Aug 2010 23:50:48 -0000
@@ -42,7 +42,7 @@
 #endif
 #endif
 
-/* This prints an "Assertion failed" message, aksing the user if they
+/* This prints an "Assertion failed" message, asking the user if they
    want to continue, dump core, or just exit.  */
 #if defined (ASSERT_FUNCTION)
 #define gdb_assert_fail(assertion, file, line, function)                      \
@@ -54,4 +54,15 @@
 		  assertion)
 #endif
 
+/* The canonical form of gdb_assert (0).
+   MESSAGE is a string to include in the error message.  */
+
+#if defined (ASSERT_FUNCTION)
+#define gdb_assert_not_reached(message) \
+  internal_error (__FILE__, __LINE__, "%s: %s", ASSERT_FUNCTION, _(message))
+#else
+#define gdb_assert_not_reached(message) \
+  internal_error (__FILE__, __LINE__, _(message))
+#endif
+
 #endif /* gdb_assert.h */
Index: avr-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/avr-tdep.c,v
retrieving revision 1.125
diff -u -p -r1.125 avr-tdep.c
--- avr-tdep.c	17 Feb 2010 10:39:10 -0000	1.125
+++ avr-tdep.c	16 Aug 2010 23:50:48 -0000
@@ -922,7 +922,7 @@ avr_return_value (struct gdbarch *gdbarc
   else if (TYPE_LENGTH (valtype) <= 8)
     lsb_reg = 18;
   else
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected type length");
 
   if (writebuf != NULL)
     {
Index: darwin-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/darwin-nat.c,v
retrieving revision 1.19
diff -u -p -r1.19 darwin-nat.c
--- darwin-nat.c	15 Feb 2010 17:35:49 -0000	1.19
+++ darwin-nat.c	16 Aug 2010 23:50:48 -0000
@@ -363,7 +363,7 @@ darwin_check_new_threads (struct inferio
 	  old_ix++;
 	  continue;
 	}
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected thread case");
     }
 
   if (darwin_inf->threads)
Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.437
diff -u -p -r1.437 dwarf2read.c
--- dwarf2read.c	13 Aug 2010 03:14:03 -0000	1.437
+++ dwarf2read.c	16 Aug 2010 23:50:48 -0000
@@ -1585,7 +1585,7 @@ dwarf2_get_section_info (struct objfile 
   else if (section_is_p (section_name, FRAME_SECTION))
     info = &data->frame;
   else
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected section");
 
   if (info->asection != NULL && info->size != 0 && info->buffer == NULL)
     /* We haven't read this section in yet.  Do it now.  */
@@ -14263,7 +14263,7 @@ munmap_section_buffer (struct dwarf2_sec
       gdb_assert (munmap ((void *) map_begin, map_length) == 0);
 #else
       /* Without HAVE_MMAP, we should never be here to begin with.  */
-      gdb_assert (0);
+      gdb_assert_not_reached ("no mmap support");
 #endif
     }
 }
Index: m32c-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/m32c-tdep.c,v
retrieving revision 1.37
diff -u -p -r1.37 m32c-tdep.c
--- m32c-tdep.c	16 Apr 2010 22:46:27 -0000	1.37
+++ m32c-tdep.c	16 Aug 2010 23:50:48 -0000
@@ -187,7 +187,7 @@ make_types (struct gdbarch *arch)
       break;
 
     default:
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected mach");
     }
 
   /* The builtin_type_mumble variables are sometimes uninitialized when
@@ -1242,7 +1242,7 @@ m32c_decode_srcdest4 (struct m32c_pv_sta
     case 0xf: sd.addr = pv_constant (m32c_udisp16 (st)); break;
 
     default:
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected srcdest4");
     }
 
   return sd;
@@ -1301,7 +1301,7 @@ m32c_decode_sd23 (struct m32c_pv_state *
     case 0x0f: sd.addr = pv_constant (m32c_udisp16 (st)); break;
     case 0x0e: sd.addr = pv_constant (m32c_udisp24 (st)); break;
     default:
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected sd23");
     }
 
   if (ind)
@@ -1886,7 +1886,7 @@ m32c_frame_base (struct frame_info *this
       return 0;
 
     default:
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected prologue kind");
     }
 }
 
Index: macroexp.c
===================================================================
RCS file: /cvs/src/src/gdb/macroexp.c,v
retrieving revision 1.22
diff -u -p -r1.22 macroexp.c
--- macroexp.c	16 May 2010 00:18:02 -0000	1.22
+++ macroexp.c	16 Aug 2010 23:50:48 -0000
@@ -334,7 +334,7 @@ get_character_constant (struct macro_buf
       else if (*p == 'L' || *p == 'u' || *p == 'U')
         p += 2;
       else
-        gdb_assert (0);
+        gdb_assert_not_reached ("unexpected character constant");
 
       body_start = p;
       for (;;)
@@ -389,7 +389,7 @@ get_string_literal (struct macro_buffer 
       else if (*p == 'L' || *p == 'u' || *p == 'U')
         p += 2;
       else
-        gdb_assert (0);
+        gdb_assert_not_reached ("unexpected string literal");
 
       for (;;)
         {
Index: mep-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mep-tdep.c,v
retrieving revision 1.25
diff -u -p -r1.25 mep-tdep.c
--- mep-tdep.c	1 Jan 2010 07:31:37 -0000	1.25
+++ mep-tdep.c	16 Aug 2010 23:50:48 -0000
@@ -804,7 +804,7 @@ mep_pseudo_cr_size (int pseudo)
            || IS_FP_CR64_REGNUM (pseudo))
     return 64;
   else
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected coprocessor pseudo register");
 }
 
 
@@ -833,7 +833,7 @@ mep_pseudo_cr_index (int pseudo)
   else if (IS_FP_CR64_REGNUM (pseudo))
       return pseudo - MEP_FIRST_FP_CR64_REGNUM;
   else
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected coprocessor pseudo register");
 }
 
 
@@ -1109,7 +1109,7 @@ mep_register_type (struct gdbarch *gdbar
             return builtin_type (gdbarch)->builtin_uint64;
         }
       else
-        gdb_assert (0);
+        gdb_assert_not_reached ("unexpected cr size");
     }
 
   /* All other registers are 32 bits long.  */
@@ -1180,7 +1180,7 @@ mep_pseudo_register_read (struct gdbarch
            || IS_FP_CR64_REGNUM (cookednum))
     mep_pseudo_cr64_read (gdbarch, regcache, cookednum, buf);
   else
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected pseudo register");
 }
 
 
@@ -1263,7 +1263,7 @@ mep_pseudo_register_write (struct gdbarc
   else if (IS_CCR_REGNUM (cookednum))
     regcache_raw_write (regcache, mep_pseudo_to_raw[cookednum], buf);
   else
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected pseudo register");
 }
 
 
@@ -1488,7 +1488,7 @@ mep_get_insn (struct gdbarch *gdbarch, C
 
       /* We'd better be in either core, 32-bit VLIW, or 64-bit VLIW mode.  */
       else
-        gdb_assert (0);
+        gdb_assert_not_reached ("unexpected vliw mode");
     }
   
   /* Otherwise, the top two bits of the major opcode are (again) what
@@ -1792,8 +1792,7 @@ mep_analyze_prologue (struct gdbarch *gd
           int disp = SWBH_32_OFFSET (insn);
           int size = (IS_SB (insn) ? 1
                       : IS_SH (insn) ? 2
-                      : IS_SW (insn) ? 4
-                      : (gdb_assert (0), 1));
+                      : (gdb_assert (IS_SW (insn)), 4));
           pv_t addr = pv_add_constant (reg[rm], disp);
 
           if (pv_area_store_would_trash (stack, addr))
Index: objfiles.c
===================================================================
RCS file: /cvs/src/src/gdb/objfiles.c,v
retrieving revision 1.118
diff -u -p -r1.118 objfiles.c
--- objfiles.c	9 Aug 2010 19:42:48 -0000	1.118
+++ objfiles.c	16 Aug 2010 23:50:48 -0000
@@ -1068,7 +1068,7 @@ qsort_cmp (const void *a, const void *b)
 	      return 1;
 
 	  /* We should have found one of the sections before getting here.  */
-	  gdb_assert (0);
+	  gdb_assert_not_reached ("section not found");
 	}
       else
 	{
@@ -1083,12 +1083,12 @@ qsort_cmp (const void *a, const void *b)
 	      return 1;
 
 	  /* We should have found one of the objfiles before getting here.  */
-	  gdb_assert (0);
+	  gdb_assert_not_reached ("objfile not found");
 	}
     }
 
   /* Unreachable.  */
-  gdb_assert (0);
+  gdb_assert_not_reached ("unexpected code path");
   return 0;
 }
 
Index: prologue-value.c
===================================================================
RCS file: /cvs/src/src/gdb/prologue-value.c,v
retrieving revision 1.11
diff -u -p -r1.11 prologue-value.c
--- prologue-value.c	16 May 2010 01:27:02 -0000	1.11
+++ prologue-value.c	16 Aug 2010 23:50:48 -0000
@@ -203,7 +203,7 @@ pv_is_identical (pv_t a, pv_t b)
     case pvk_register:
       return (a.reg == b.reg && a.k == b.k);
     default:
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected prologue value kind");
     }
 }
 
Index: record.c
===================================================================
RCS file: /cvs/src/src/gdb/record.c,v
retrieving revision 1.52
diff -u -p -r1.52 record.c
--- record.c	19 Jul 2010 17:51:23 -0000	1.52
+++ record.c	16 Aug 2010 23:50:48 -0000
@@ -454,7 +454,7 @@ record_get_loc (struct record_entry *rec
       return rec->u.reg.u.buf;
   case record_end:
   default:
-    gdb_assert (0);
+    gdb_assert_not_reached ("unexpected record_entry type");
     return NULL;
   }
 }
Index: value.c
===================================================================
RCS file: /cvs/src/src/gdb/value.c,v
retrieving revision 1.109
diff -u -p -r1.109 value.c
--- value.c	11 Aug 2010 16:48:26 -0000	1.109
+++ value.c	16 Aug 2010 23:50:48 -0000
@@ -1915,7 +1915,7 @@ value_static_field (struct type *type, i
       break;
     }
     default:
-      gdb_assert (0);
+      gdb_assert_not_reached ("unexpected field location kind");
     }
 
   return retval;
Index: xtensa-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/xtensa-tdep.c,v
retrieving revision 1.43
diff -u -p -r1.43 xtensa-tdep.c
--- xtensa-tdep.c	1 Jul 2010 15:36:18 -0000	1.43
+++ xtensa-tdep.c	16 Aug 2010 23:50:48 -0000
@@ -2057,7 +2057,7 @@ call0_track_op (struct gdbarch *gdbarch,
 	}
       break;
     default:
-	gdb_assert (0);
+	gdb_assert_not_reached ("unexpected instruction kind");
     }
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]