summary refs log tree commit diff
path: root/parse.c
diff options
context:
space:
mode:
authorAndrew Chambers <andrewchambers@fastmail.com>2019-02-27 22:10:17 +1300
committerQuentin Carbonneaux <quentin@c9x.me>2019-02-27 16:26:53 +0100
commitc043227bf792fd341cd19f40cd96b7577dacbd5a (patch)
tree140b02435306f45d188a151f647df74a29596acc /parse.c
parentb2ea8c11b61014cb90e2a025d605ac77a1c7d6bc (diff)
downloadroux-c043227bf792fd341cd19f40cd96b7577dacbd5a.tar.gz
Let runtime crash on zero div, don't fold it.
Remarks from Quentin:

It is an important decision to use Bot
and not Top as the result of 'x / 0'.
By using Bot, we refuse to give a warrant
to the compiler that would allow meaningless
subsequent decisions.  An example follows.

Clang, on my computer, will build a program
which prints "Ho" when fed the following C:

    int main()
    { puts(1/0 ? "Hi" : "Ho"); }

On the other hand, a C compiler based on
QBE will build a program which crashes,
as one would expect.

See also
https://c9x.me/notes/2014-09-10.html
Diffstat (limited to 'parse.c')
0 files changed, 0 insertions, 0 deletions