[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