--- *(char*)0 = 0; - What Does the C Programmer Intend With This Code? - JF Bastien - C on Sea 2023 int main() { *(char*)0 = 0; } This is a very simple program. Some might find it offensive, but let’s enjoy ourselves instead. Let’s talk about this program for the next 60 minutes. Maybe we can make it less offensive, let’s first ask: “what did the programmer intend with this code?” We’ll discuss what it might mean to a programmer, maybe we could help them express intent better. We should also consider what different versions of the code mean to various language standards. Once we’ve figured that out, how do compilers reconcile programmer’s feelings with standards’ opinions? That’s nice, but let’s dig in more deeply and look at what various kernels think about everyone’s opinions. Then, let’s see what various hardware do about all of this mess. Of course we’ll talk about undefined behavior, but we’ll do so much more! We’ll travel up and down the stack, discussing in details everything that such a seemingly-simple program does. --- Slides: Sponsored by think-cell: --- JF Bastien JF is chief architect at Woven by Toyota. He chairs the evolution of the C programming language. JF has worked on a variety of compilers for a variety of programming languages, implementing language features, improving performance / security / safety, targeting novel architectures, and other fun things. See --- C on Sea is an annual C and coding conference, in Folkestone, in the UK. - Annual C on Sea, C conference: - 2023 Program: - Twitter: --- YouTube Videos Filmed, Edited & Optimised by Digital Medium: #cpp #cpponsea #cppprogramming
Hide player controls
Hide resume playing