From: Ralf Jung Date: Mon, 15 Jul 2019 12:58:59 +0000 (+0200) Subject: link to my UB post X-Git-Url: https://git.ralfj.de/web.git/commitdiff_plain/b67b153b59c6d73bc448ee7ccea0802d0886eeb9?ds=inline;hp=4655e63cfb4a8e6cea0e45d6b0a55faa1baab01d link to my UB post --- diff --git a/ralf/_posts/2019-07-14-uninit.md b/ralf/_posts/2019-07-14-uninit.md index e2089cb..c8f2d9d 100644 --- a/ralf/_posts/2019-07-14-uninit.md +++ b/ralf/_posts/2019-07-14-uninit.md @@ -57,7 +57,7 @@ How is this possible? The answer is that, in the "abstract machine" that is used to specify the behavior of our program, every byte in memory cannot just have a value in `0..256` (this is Rust/Ruby syntax for a left-inclusive right-exclusive range), it can also be "uninitialized". Memory *remembers* if you initialized it. The `x` that is passed to `always_return_true` is *not* the 8-bit representation of some number, it is an uninitialized byte. -Performing operations such as comparison on uninitialized bytes is undefined behavior. +Performing operations such as comparison on uninitialized bytes is [undefined behavior]({% post_url 2017-07-14-undefined-behavior %}). As a consequence, our program has undefined behavior, so we should not be surprised that it acts "weirdly". Of course, there is a reason for this undefined behavior.