Re: Test suite fails on alpha architecture

Поиск
Список
Период
Сортировка
От Falk Hueffner
Тема Re: Test suite fails on alpha architecture
Дата
Msg-id 87mytp982s.fsf@debian.org
обсуждение исходный текст
Ответ на Re: Test suite fails on alpha architecture  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Test suite fails on alpha architecture  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Tom Lane <tgl@sss.pgh.pa.us> writes:

> All the other diffs that Martin showed are divide-by-zero failures,
> and I do not see any of them on Gentoo's machine.  I think that this
> must be a compiler bug.  The first example in his diffs is just
> "select 1/0", which executes this code:
>
>     int32        arg1 = PG_GETARG_INT32(0);
>     int32        arg2 = PG_GETARG_INT32(1);
>     int32        result;
>
>     if (arg2 == 0)
>         ereport(ERROR,
>                 (errcode(ERRCODE_DIVISION_BY_ZERO),
>                  errmsg("division by zero")));
>
>     result = arg1 / arg2;
>
> It looks to me like Debian's compiler must be allowing the division
> instruction to be speculatively executed before the if-test branch
> is taken.  Perhaps it is supposing that this is OK because control
> will return from ereport(), when in fact it will not (the routine
> throws a longjmp).  Since we've not seen such behavior on any other
> platform, however, I suspect this is just a bug and not intentional.

Can you create a stand-alone testcase for this?

--
    Falk

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pg_get_indexdef excludes tablespace info
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Test suite fails on alpha architecture