🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310369

Re: przekręcenie licznika w zmiennej typu int - czy to UB ?

#310369
From: Tomasz Kaczanowski
Date: Wed, 12 Jan 2022 16:02
27 lines
2436 bytes
W dniu 12.01.2022 o 16:49, Arnold Ziffel pisze:
> Mateusz Viste <mateusz@xyz.invalid> wrote:
> 
>> Drobna poprawka, żeby było śmieszniej.
>> Rozdział 6.2.5.1 z tego samego dokumentu co wcześniej podaje:
>>
>> "computation involving unsigned operands can never overflow because a
>> result that cannot be represented by the resulting unsigned integer
>> type is reduced modulo the number that is one greater than the largest
>> value that can be represented by the resulting unsigned integer type"
>>
>> Czyli przy typach *unsigned* UB nie występuje.
> 
> Chodzi, podejrzewam, o to, że sposób zapisu liczb ujemnych różni się
> między platformami. Nigdy w praktyce nie widziałem innego niż U2, ale
> istnieją, a C ma być przenośne.
> 

ale czasem kompilator może robić optymalizacje wiedząc, że liczby takie 
nie mogą się "przekręcać" Jakiś czas temu był taki kod analizowany nawet 
chyba tu, a może na 4programmers - nie pamiętam, po włączeniu 
optymalizacji w nowszych kompilatorach kod działał właśnie dziwnie, bo 
kompilator robił dużą optymalizację biorąc pod uwagę, że nie może być 
przekręcenia.

-- 
http://zrzeda.pl
Technical Details
Message-ID: <srmu28$1pcc$1@gioia.aioe.org>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!z67upo8gFVo4Z8YX+TqpCw.user.46.165.242.91.POSTED!not-for-mail
References: <9fefc125-650e-496d-a385-87234f47a197n@googlegroups.com> <soogbe$6te$1@gioia.aioe.org> <8b1e1123-77c7-4cf0-ab2e-efd24958795en@googlegroups.com> <sqn2v5$1mm3$1@gioia.aioe.org> <4b1b7198-eb96-44ef-82e4-9ab0afa35473@hooterville.invalid>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!z67upo8gFVo4Z8YX+TqpCw.user.46.165.242.91.POSTED!not-for-mail
From: Tomasz Kaczanowski <kaczus@_wiadomo_.onet.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: przekręcenie licznika w zmiennej typu int - czy
 to UB ?
Date: Wed, 12 Jan 2022 17:02:16 +0100
Organization: Aioe.org NNTP Server
Message-ID: <srmu28$1pcc$1@gioia.aioe.org>
References: <9fefc125-650e-496d-a385-87234f47a197n@googlegroups.com> <soogbe$6te$1@gioia.aioe.org> <8b1e1123-77c7-4cf0-ab2e-efd24958795en@googlegroups.com> <sqn2v5$1mm3$1@gioia.aioe.org> <4b1b7198-eb96-44ef-82e4-9ab0afa35473@hooterville.invalid>
Reply-To: kaczus@wytnij_poczta.onet.pl
Mime-Version: 1.0
Injection-Info: gioia.aioe.org; logging-data="58764"; posting-host="z67upo8gFVo4Z8YX+TqpCw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1
X-Notice: Filtered by postfilter v. 0.9.2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit