This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Fix PR ada/22333


This PR tracks 3 generic ACATS failures at -O2 (c34007p c34007r c45282b).
The problem is that the gimplifier was confused by the &COMPOUND_EXPR 
construct generated by Gigi and missed the addressability.

Fixed by specifically enhancing gnat_gimplify_expr, bootstrapped/regtested on 
i586-suse-linux, applied to mainline.


2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	PR ada/22333
	* trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
	a temporary if taking the address of something that is neither
	reference, declaration, or constant, since the gimplifier
	can't handle that case.


-- 
Eric Botcazou
--- bfd/vms-tir.c.0	2005-11-17 19:48:17.928110112 +0100
+++ bfd/vms-tir.c	2005-11-17 20:14:50.469007096 +0100
@@ -263,6 +263,9 @@ cmd_name (cmd)
     case ETIR_S_C_STO_CA: return "ETIR_S_C_STO_CA";
     case ETIR_S_C_STO_RB: return "ETIR_S_C_STO_RB";
     case ETIR_S_C_STO_AB: return "ETIR_S_C_STO_AB";
+    case ETIR_S_C_STO_OFF: return "ETIR_S_C_STO_OFF";
+    case ETIR_S_C_STO_IMM: return "ETIR_S_C_STO_IMM";
+    case ETIR_S_C_STO_LW: return "ETIR_S_C_STO_LW";
     case ETIR_S_C_STO_GBL_LW: return "ETIR_S_C_STO_GBL_LW";
     case ETIR_S_C_STO_LP_PSB: return "ETIR_S_C_STO_LP_PSB";
     case ETIR_S_C_STO_HINT_GBL: return "ETIR_S_C_STO_HINT_GBL";
@@ -286,10 +289,12 @@ cmd_name (cmd)
     case ETIR_S_C_STC_BOH_GBL: return "ETIR_S_C_STC_BOH_GBL";
     case ETIR_S_C_STC_BOH_PS: return "ETIR_S_C_STC_BOH_PS";
     case ETIR_S_C_STC_NBH_GBL: return "ETIR_S_C_STC_NBH_GBL";
+    case ETIR_S_C_CTL_SETRB: return "ETIR_S_C_CTL_SETRB";
+    case ETIR_S_C_STC_LP_PSB: return "ETIR_S_C_STC_LP_PSB";
 
     default:
       /* These names have not yet been added to this switch statement.  */
-      abort ();
+      (*_bfd_error_handler) (_("unknown command %d"), cmd);
     }
 }
 #define HIGHBIT(op) ((op & 0x80000000L) == 0x80000000L)
@@ -1732,7 +1737,7 @@ etir_cmd (abfd, cmd, ptr)
   int i = 0;
 
 #if VMS_DEBUG
-  _bfd_vms_debug (4, "etir_cmd %d/%x\n", cmd, cmd);
+  _bfd_vms_debug (4, "etir_cmd: %s(%d)\n", cmd_name (cmd), cmd);
   _bfd_hexdump (8, ptr, 16, (int) ptr);
 #endif
 
@@ -1749,7 +1754,7 @@ etir_cmd (abfd, cmd, ptr)
     }
 
 #if VMS_DEBUG
-  _bfd_vms_debug (4, "etir_cmd: = 0\n");
+  _bfd_vms_debug (4, "etir_cmd: ok\n");
 #endif
   return 0;
 }
@@ -1811,7 +1816,7 @@ analyze_etir (abfd, ptr, length)
     }
 
 #if VMS_DEBUG
-  _bfd_vms_debug (3, "analyze_etir: = %d\n", result);
+  _bfd_vms_debug (3, "analyze_etir: result = %d\n", result);
 #endif
 
   return result;

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