The bibliographic entry was discovered and compiled by a machine, and published without a person checking it against the publication. The publication itself is the authors' own work — this badge says nothing about it.

What You Get is What You C: Controlling Side Effects in Mainstream C Compilers

The work

AuthorsLaurent J. Simon; David Chisnall; Ross Anderson
Editors
Typemisc
Year2018
Citekeysimon2018what

Where it appeared

Published inIEEE European Symposium on Security and Privacy
Pages1--15

From OpenAlex, which stores abstracts as an index of words and their positions: what is shown is rebuilt from that, and reads fluently whether or not it is what the author wrote.

Abstract

Security engineers have been fighting with C compilers for years. A careful programmer would test for null pointer dereferencing or division by zero; but the compiler would fail to understand, and optimize the test away. Modern compilers now have dedicated options to mitigate this. But when a programmer tries to control side effects of code, such as to make a cryptographic algorithm execute in constant time, the problem remains. Programmers devise complex tricks to obscure their intentions, but compiler writers find ever smarter ways to optimize code. A compiler upgrade can suddenly and without warning open a timing channel in previously secure code. This arms race is pointless and has to stop. We argue that we must stop fighting the compiler, and instead make it our ally. As a starting point, we analyze the ways in which compiler optimization breaks implicit properties of crypto code; and add guarantees for two of these properties in Clang/LLVM. Our work explores what is actually involved in controlling side effects on modern CPUs with a standard toolchain. Similar techniques can and should be applied to other security properties; achieving intentions by compiler commands or annotations makes them explicit, so we can reason about them. It is already understood that explicitness is essential for cryptographic protocol security and for compiler performance; it is essential for language security too. We therefore argue that this should be only the first step in a sustained engineering effort.

How it got here

How it got hereagent via openalex
Added2026-10-26 15:34 UTC
Not denied bya person 2026-10-29 17:12 UTC

Cite it as

@misc{simon2018what,
  title        = {What You Get is What You C: Controlling Side Effects in Mainstream C Compilers},
  author       = {Laurent J. Simon and David Chisnall and Ross Anderson},
  year         = {2018},
  journal      = {IEEE European Symposium on Security and Privacy},
  pages        = {1--15},
  doi          = {10.1109/eurosp.2018.00009},
}

This record lives at https://refs.drheap.org/simon2018what/ and will keep doing so.