Re: [patch] Fix oddity in personality routine

Jack Howarth <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
On Fri, Nov 13, 2009 at 05:57:03PM +0000, Andrew Haley wrote:
> Eric Botcazou wrote:
> > Hi,
> > 
> > r128098 has introduced an oddity in the personality routine:
> > 
> >   int ip_before_insn = 0;
> > [...]
> > 
> >   // Parse the LSDA header.
> >   p = parse_lsda_header (context, language_specific_data, &info);
> > #ifdef HAVE_GETIPINFO
> >   ip = _Unwind_GetIPInfo (context, &ip_before_insn);
> > #else
> >   ip = _Unwind_GetIP (context) - 1;
> > #endif
> >   if (! ip_before_insn)
> >     --ip;
> > 
> > So, if !HAVE_GETIPINFO, the IP is decremented by 2!  It used to be 1 and both 
> > libstdc++-v3/libsupc++/eh_personality.cc and ada/raise-gcc.c have the expected 
> > version:
> > 
> > #ifdef _GLIBCXX_HAVE_GETIPINFO
> >   ip = _Unwind_GetIPInfo (context, &ip_before_insn);
> > #else
> >   ip = _Unwind_GetIP (context);
> > #endif
> >   if (! ip_before_insn)
> >     --ip;
> > 
> > Hence the attached patch, that I don't plan to test though.  OK anyway?
> > 
> > 
> > 2009-11-13  Eric Botcazou  <[email protected]>
> > 
> > 	* exception.cc (PERSONALITY_FUNCTION): Fix oversight.
> > 
> 
> 
> Yes, I think that's right.
> 
> Andrew.

Andrew,
   Do you think this could be the origin of the problems we have had
on intel darwin with gcj compiling java files? 
                          Jack
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.