diff -urN src/gdb/coffread.c dev/gdb/coffread.c --- src/gdb/coffread.c 2007-06-19 05:22:04.000000000 +0200 +++ dev/gdb/coffread.c 2007-06-19 05:49:32.000000000 +0200 @@ -1561,25 +1561,6 @@ case C_ARG: SYMBOL_CLASS (sym) = LOC_ARG; add_symbol_to_list (sym, &local_symbols); -#if !defined (BELIEVE_PCC_PROMOTION) - if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG) - { - /* If PCC says a parameter is a short or a char, - aligned on an int boundary, realign it to the - "little end" of the int. */ - struct type *temptype; - temptype = lookup_fundamental_type (current_objfile, - FT_INTEGER); - if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (temptype) - && TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT - && 0 == SYMBOL_VALUE (sym) % TYPE_LENGTH (temptype)) - { - SYMBOL_VALUE (sym) += - TYPE_LENGTH (temptype) - - TYPE_LENGTH (SYMBOL_TYPE (sym)); - } - } -#endif break; case C_REGPARM: @@ -1587,26 +1568,6 @@ SYMBOL_VALUE (sym) = gdbarch_sdb_reg_to_regnum (current_gdbarch, cs->c_value); add_symbol_to_list (sym, &local_symbols); -#if !defined (BELIEVE_PCC_PROMOTION) - /* FIXME: This should retain the current type, since it's just - a register value. gnu@adobe, 26Feb93 */ - { - /* If PCC says a parameter is a short or a char, - it is really an int. */ - struct type *temptype; - temptype = - lookup_fundamental_type (current_objfile, FT_INTEGER); - if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (temptype) - && TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT) - { - SYMBOL_TYPE (sym) = - (TYPE_UNSIGNED (SYMBOL_TYPE (sym)) - ? lookup_fundamental_type (current_objfile, - FT_UNSIGNED_INTEGER) - : temptype); - } - } -#endif break; case C_TPDEF: diff -urN src/gdb/gdbarch.c dev/gdb/gdbarch.c --- src/gdb/gdbarch.c 2007-06-19 05:22:04.000000000 +0200 +++ dev/gdb/gdbarch.c 2007-06-19 05:46:35.000000000 +0200 @@ -673,11 +673,6 @@ fprintf_unfiltered (file, "gdbarch_dump: adjust_breakpoint_address = <0x%lx>\n", (long) current_gdbarch->adjust_breakpoint_address); -#ifdef BELIEVE_PCC_PROMOTION - fprintf_unfiltered (file, - "gdbarch_dump: BELIEVE_PCC_PROMOTION # %s\n", - XSTRING (BELIEVE_PCC_PROMOTION)); -#endif fprintf_unfiltered (file, "gdbarch_dump: believe_pcc_promotion = %s\n", paddr_d (current_gdbarch->believe_pcc_promotion)); diff -urN src/gdb/gdbarch.h dev/gdb/gdbarch.h --- src/gdb/gdbarch.h 2007-06-19 05:22:04.000000000 +0200 +++ dev/gdb/gdbarch.h 2007-06-19 05:46:26.000000000 +0200 @@ -320,12 +320,6 @@ extern int gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch); extern void set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch, int believe_pcc_promotion); -#if !defined (GDB_TM_FILE) && defined (BELIEVE_PCC_PROMOTION) -#error "Non multi-arch definition of BELIEVE_PCC_PROMOTION" -#endif -#if !defined (BELIEVE_PCC_PROMOTION) -#define BELIEVE_PCC_PROMOTION (gdbarch_believe_pcc_promotion (current_gdbarch)) -#endif typedef int (gdbarch_convert_register_p_ftype) (int regnum, struct type *type); extern int gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type); diff -urN src/gdb/gdbarch.sh dev/gdb/gdbarch.sh --- src/gdb/gdbarch.sh 2007-06-19 05:22:04.000000000 +0200 +++ dev/gdb/gdbarch.sh 2007-06-19 05:46:19.000000000 +0200 @@ -481,7 +481,7 @@ # setjmp/longjmp support. F::int:get_longjmp_target:struct frame_info *frame, CORE_ADDR *pc:frame, pc # -v:=:int:believe_pcc_promotion::::::: +v::int:believe_pcc_promotion::::::: # f::int:convert_register_p:int regnum, struct type *type:regnum, type:0:generic_convert_register_p::0 f::void:register_to_value:struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf:frame, regnum, type, buf:0 diff -urN src/gdb/stabsread.c dev/gdb/stabsread.c --- src/gdb/stabsread.c 2007-06-19 05:22:05.000000000 +0200 +++ dev/gdb/stabsread.c 2007-06-19 05:48:04.000000000 +0200 @@ -162,15 +162,6 @@ static const char vptr_name[] = "_vptr$"; static const char vb_name[] = "_vb$"; -/* Define this as 1 if a pcc declaration of a char or short argument - gives the correct address. Otherwise assume pcc gives the - address of the corresponding int, which is not the same on a - big-endian machine. */ - -#if !defined (BELIEVE_PCC_PROMOTION) -#define BELIEVE_PCC_PROMOTION 0 -#endif - static void invalid_cpp_abbrev_complaint (const char *arg1) { @@ -971,10 +962,11 @@ } /* If it's gcc-compiled, if it says `short', believe it. */ - if (processing_gcc_compilation || BELIEVE_PCC_PROMOTION) + if (processing_gcc_compilation + || gdbarch_believe_pcc_promotion (current_gdbarch)) break; - if (!BELIEVE_PCC_PROMOTION) + if (!gdbarch_believe_pcc_promotion (current_gdbarch)) { /* This is the signed type which arguments get promoted to. */ static struct type *pcc_promotion_type;