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]

PATCH: PR middle-end/22284: [4.1 Regression] ia64 exception handling broken


This patch seems to fix PR 22284. This regression is introduced by

http://gcc.gnu.org/ml/gcc-patches/2005-06/msg01149.html

which sets info.ttype_base to 0. When get_ttype_entry calls

  read_encoded_value_with_base (info->ttype_encoding, info->ttype_base,
                                info->TType - i, &ptr);

info->ttype_base is 0 and leads to crash. This patch reverts the
change to info->ttype_base. I am testing it on ia32, x86_64 and ia64
now.


H.J.
----
2005-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/22284
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Revert
	the change to info.ttype_base.
	
--- libstdc++-v3/libsupc++/eh_personality.cc.bad	2005-07-21 22:05:49.000000000 -0700
+++ libstdc++-v3/libsupc++/eh_personality.cc	2005-07-22 10:02:57.000000000 -0700
@@ -428,7 +428,7 @@ PERSONALITY_FUNCTION (int version,
 
   // Parse the LSDA header.
   p = parse_lsda_header (context, language_specific_data, &info);
-  info.ttype_base = 0;
+  info.ttype_base = base_of_encoded_value (info.ttype_encoding, context);
   ip = _Unwind_GetIP (context) - 1;
   landing_pad = 0;
   action_record = 0;


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