Is there a website with non-UB C code snippets for stuff that is UB if done directly (like converting uint to int assuming twos complement)?
-
-
Replying to @oe1cxw
That example isn't UB, it's implementation-defined and pretty much universally accepted as appropriate.
1 reply 0 retweets 1 like -
Replying to @RichFelker @oe1cxw
But anyway, x>INT_MAX ? -1-(int)(-1-x) : x
3 replies 0 retweets 2 likes -
Replying to @RichFelker
hmm.. cprover (cbmc) is not happy with that: "arithmetic overflow on signed to unsigned type conversion in (unsigned int)-1"
3 replies 0 retweets 0 likes -
Replying to @oe1cxw @RichFelker
Pretty sure per the C standard that's required to produce 0U-1U - or UINT_MAX
2 replies 0 retweets 1 like -
Yes, conversion from signed to unsigned is completely defined.
1 reply 0 retweets 2 likes -
Replying to @RichFelker @oshepherd
Thanks. For reference (I just looked it up): The 2nd paragraph in 6.3.1.3 of the C99 standard.
1 reply 0 retweets 0 likes
FYI there are nice searchable/indexed versions of the (draft & TC) standards here: http://port70.net/~nsz/c/
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.