[Mono-dev] Possible bug in exceptions-ia64.c (was Re: Possible bug in mini-ia64.c)
Zoltan Varga
vargaz at gmail.com
Wed Sep 20 11:32:25 EDT 2006
Hi,
These are now fixed as well. Thanks for reporting this.
Zoltan
On 9/20/06, Bill Seurer <seurer at us.ibm.com> wrote:
>
> mono-devel-list-bounces at lists.ximian.com wrote on 09/19/2006 11:13:52 AM:
>
> > Could you take a look at "mono_arch_call_opcode" function in mini-ia64.c.
> ...
>
> That reminded me, I noticed several probable problems in the ia64 exception
> code when I was looking at it a while back. It was in 1.1.15 and I haven't
> checked the newer code.
>
> For example, in exceptions-ia64.c:
>
>
> static gpointer
> get_real_call_filter (void)
> {
> static gpointer filter;
> guint8 *start;
> gboolean inited = FALSE;
> ... some more decls ...
> if (inited)
> return filter;
> ... create some code at "start" ...
> filter = ia64_create_ftnptr (start);
>
> inited = TRUE;
>
> return filter;
> }
>
>
> "inited" isn't static above so the "if (inited)" check will always fail and
> the code will always be recreated. Maybe it should always be recreated but
> then the "inited" stuff should be removed.
>
> Also in exceptions-ia64.c:
>
>
> gpointer
> mono_arch_get_throw_corlib_exception (void)
> {
> static guint8* start;
> static gboolean inited = FALSE;
> ... some more decls ...
> if (inited)
> return start;
> ... create some code at "start" ...
> return ia64_create_ftnptr (start);
> }
>
>
> This code has inited as static but then never sets "inited" to anything
> later on and thus fails as the previous one did (it always recreates the
> code) albeit for a different reason. Actually, this is fortunate because
> if it did set inited to TRUE the wrong value would be returned, i.e., the
> "raw" start not turned into a function descriptor (compare with
> filter/start in the previous one).
>
> I suspect there may be more of these.
> --
> Bill Seurer IBM System i5 internal compiler development Rochester, MN
> Business: seurer at us.ibm.com Home: Bill at seurer.net
> http://w3.rchland.ibm.com/~seurer/ http://www.seurer.net
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
More information about the Mono-devel-list
mailing list