From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20967 invoked by alias); 17 Aug 2010 00:01:27 -0000 Received: (qmail 19801 invoked by uid 22791); 17 Aug 2010 00:01:25 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,TW_BJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.35) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 17 Aug 2010 00:01:18 +0000 Received: from kpbe18.cbf.corp.google.com (kpbe18.cbf.corp.google.com [172.25.105.82]) by smtp-out.google.com with ESMTP id o7H01Eif001393 for ; Mon, 16 Aug 2010 17:01:15 -0700 Received: from ruffy.mtv.corp.google.com (ruffy.mtv.corp.google.com [172.18.118.116]) by kpbe18.cbf.corp.google.com with ESMTP id o7H01Dd4004887 for ; Mon, 16 Aug 2010 17:01:14 -0700 Received: by ruffy.mtv.corp.google.com (Postfix, from userid 67641) id 6467684B8F; Mon, 16 Aug 2010 17:01:13 -0700 (PDT) To: gdb-patches@sourceware.org Subject: [patch] new macro: gdb_assert_not_reached Message-Id: <20100817000113.6467684B8F@ruffy.mtv.corp.google.com> Date: Tue, 17 Aug 2010 00:01:00 -0000 From: dje@google.com (Doug Evans) X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-08/txt/msg00250.txt.bz2 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 * 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"); } }