Go to file
Marijn Haverbeke 420484579d Better handling of unreachable code in trans
The builder functions in trans_build now look at an 'unreachable' flag
in the block context and don't generate code (returning undefined
placeholder values) when this flag is set. Threading the unreachable
flag through context still requires some care, but this seems a more
sane approach than re-checking for terminated blocks throughout the
compiler.

When creating a block, if you use its closest dominator as parent, the
flag will be automatically passed through. If you can't do that,
because the dominator is a scope block that you're trying to get out
of, you'll have to do something like this to explicitly pass on the
flag:

    if bcx.unreachable { Unreachable(next_cx); }

Closes #949. Closes #946. Closes #942. Closes #895. Closes #894.
Closes #892. Closes #957. Closes #958.
2011-09-23 11:09:57 +02:00
doc Switch URLs. 2011-09-20 16:27:08 -07:00
mk Remove -i for real. 2011-09-22 11:32:53 -07:00
src Better handling of unreachable code in trans 2011-09-23 11:09:57 +02:00
.gitignore More additions to .gitignore. 2011-07-13 13:51:30 -07:00
AUTHORS.txt Updating my e-mail address to one that actually still works. 2011-08-26 18:01:11 -07:00
configure Expand our own config.guess-like logic in configure, rather than only asking LLVM. We have to decide some things before we get an LLVM to ask. 2011-09-21 11:24:59 -07:00
LICENSE.txt Add libuv license info to LICENSE.txt 2011-08-09 12:00:00 -07:00
Makefile.in Expand our own config.guess-like logic in configure, rather than only asking LLVM. We have to decide some things before we get an LLVM to ask. 2011-09-21 11:24:59 -07:00
README Switch URLs. 2011-09-20 16:27:08 -07:00

This is a compiler and suite of associated libraries and documentation for the
Rust programming language.

See LICENSE.txt for terms of copyright and redistribution.

See http://www.rust-lang.org for more information.