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
|
| Список | 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 по дате отправления: