Questions about C as used/implemented in practice

Dear LLVM developers,

we are trying to clarify what behaviour of C implementations is
actually relied upon in modern practice, and what behaviour is
guaranteed by current mainstream implementations (these can be quite
different from the ISO standards, and may differ in different

Focussing on the sequential behaviour of memory operations, we've
collected a short survey of 15 questions about C:

Your answers to these would be very helpful, especially if you can
speak authoritatively about what clang/llvm do (it's difficult for us to
directly investigate the emergent properties of the combination of
optimisations in a production compiler), or about undefined-behaviour
or memory sanitisers. Some of you might have seen this survey
in the recent EuroLLVM keynote by Francesco Zappa Nardelli.

This continues a research project at the University of Cambridge; in
earlier work (with Batty, Owens, and Sarkar) we addressed the C/C++11
concurrency model, which clarified what that model should be and resulted in
fixes to the ISO standards, and work on compiler testing (by Zappa Nardelli,
Morisset, and Pawan); we hope for similar benefits here.

many thanks,
Kayvan Memarian and Peter Sewell