summaryrefslogtreecommitdiffstats
path: root/www/get_involved.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-08 20:41:34 +0000
committerChris Lattner <sabre@nondot.org>2009-02-08 20:41:34 +0000
commit0a5166cb0a69772c202f426b3af4cddd4995d818 (patch)
treea2d0782dfdb09c605aede1ab1871d5c02877952a /www/get_involved.html
parent41df3f32ac127206c1bbda10bb9474a80d6b3ab2 (diff)
add another crazy idea :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64092 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'www/get_involved.html')
-rw-r--r--www/get_involved.html10
1 files changed, 9 insertions, 1 deletions
diff --git a/www/get_involved.html b/www/get_involved.html
index f18ebef48f..94268e82e6 100644
--- a/www/get_involved.html
+++ b/www/get_involved.html
@@ -82,12 +82,20 @@ of <a href="http://llvm.org/docs/SourceLevelDebugging.html">LLVM debug info</a>
(which the code generator turns into DWARF). The missing pieces are pretty
minor at this point.</li>
-<li><b>Overflow detection</b>: an interesting project would be to add a
+<li><b>Overflow detection</b>: an interesting project would be to add a -ftrapv
compilation mode that causes -emit-llvm to generate overflow tests for all
signed integer arithmetic operators, and call abort if they overflow. Overflow
is undefined in C and hard for people to reason about. LLVM IR also has
intrinsics for generating arithmetic with overflow checks directly.</li>
+<li><b>Undefined behavior checking</b>: similar to adding -ftrapv, codegen could
+insert runtime checks for all sorts of different undefined behaviors, from
+reading uninitialized variables, buffer overflows, and many other things. This
+checking would be expensive, but the optimizers could eliminate many of the
+checks in some cases, and it would be very interesting to test code in this mode
+for certain crowds of people. Because the inserted code is coming from clang,
+the "abort" message could be very detailed about exactly what went wrong.</li>
+
<li><b>Continue work on C++ support</b>: Implementing all of C++ is a very big
job, but there are lots of little pieces that can be picked off and implemented.
See the <a href="cxx_status.html">C++ status report page</a> to find out what is