Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior

Поиск
Список
Период
Сортировка
Искать
От
Andres Freund
Тема
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior
Дата
Msg-id
8B39F978-F97D-4C7C-B6EF-2A399FCF0E1D@anarazel.de
Ответ на
Список
Дерево обсуждения
Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Alvaro Herrera <alvherre@2ndquadrant.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Noah Misch <noah@leadboat.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Tom Lane <tgl@sss.pgh.pa.us>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Noah Misch <noah@leadboat.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Peter Geoghegan <pg@bowt.ie>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Tom Lane <tgl@sss.pgh.pa.us>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Noah Misch <noah@leadboat.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Tom Lane <tgl@sss.pgh.pa.us>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Noah Misch <noah@leadboat.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Peter Geoghegan <pg@bowt.ie>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Tom Lane <tgl@sss.pgh.pa.us>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Alvaro Herrera <alvherre@2ndquadrant.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Andres Freund <andres@anarazel.de>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Peter Geoghegan <pg@bowt.ie>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Andres Freund <andres@anarazel.de>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Andres Freund <andres@anarazel.de>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Alvaro Herrera <alvherre@2ndquadrant.com>
Re: Clang UndefinedBehaviorSanitize (Postgres14) Detected undefined-behavior Ranier Vilela <ranier.vf@gmail.com>
Hi, 

On August 31, 2020 11:08:49 AM PDT, Ranier Vilela  wrote:
>Em seg., 31 de ago. de 2020 às 14:43, Ranier Vilela
>
>escreveu:
>
>> Em seg., 31 de ago. de 2020 às 14:00, Alvaro Herrera <
>> alvherre@2ndquadrant.com> escreveu:
>>
>>> On 2020-Aug-31, Ranier Vilela wrote:
>>>
>>> > More troubles with undefined-behavior.
>>> >
>>> > This type of code can leaves overflow:
>>> > var = (cast) (expression);
>>> > diff = (int32) (id1 - id2);
>>> >
>>> > See:
>>> >     diff64 =  ((long int) d1 - (long int) d2);
>>> >     diff64=-4294901760
>>>
>>> Did you compile this with gcc -fwrapv?
>>>
>> gcc 10.2 -O2  -fwrapv
>> bool test1()
>> {
>>     unsigned int d1 = 3;
>>     unsigned int d2 = 4294901763;
>>     long int diff64 = 0;
>>
>>     diff64 =  ((long int) d1 - (long int) d2);
>>
>>     return (diff64 < 0);
>> }
>>
>> output:
>> mov     eax, 1
>>         ret
>>
>> What is a workaround for msvc 2019 (64 bits) and clang 64 bits
>(linux)?
>> transam.c:311:22: runtime error: unsigned integer overflow: 3 -
>4294901763
>> cannot be represented in type 'unsigned int'

Unsigned integer overflow is well defined in the standard. So I don't understand what this is purporting to warn about.

Andres

Regards,

Andres
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.


В списке pgsql-hackers по дате отправления
От: Pavel Stehule
Дата:
От: Thomas Munro
Дата:
FAQ