This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patch] new macro: gdb_assert_not_reached
- From: dje at google dot com (Doug Evans)
- To: gdb-patches at sourceware dot org
- Date: Mon, 16 Aug 2010 17:01:13 -0700 (PDT)
- Subject: [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");
}
}