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]

[rfc] Replace macro BELIEVE_PCC_PROMOTION


Hello,

this patch replaces macro BELIEVE_PCC_PROMOTION by gdbarch_believe_pcc_promotion.


ChangeLog:


	* gdbarch.sh (BELIEVE_PCC_PROMOTION): Replace by
	gdbarch_believe_pcc_promotion.
	* stabsread.c (define_symbol): Likewise.
	Remove unnecessary definition.
	* coffread.c (process_coff_symbol): Remove unnecessary code.
	* gdbarch.c, gdbarch.h: Regenerate.


Is this ok to commit ?


Not much left :-D

--
Markus Deuling
GNU Toolchain for Linux on Cell BE
deuling@de.ibm.com


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;

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