(which the code generator turns into DWARF). The missing pieces are pretty \r
minor at this point.</li>\r
\r
-<li><b>Overflow detection</b>: an interesting project would be to add a \r
+<li><b>Overflow detection</b>: an interesting project would be to add a -ftrapv\r
compilation mode that causes -emit-llvm to generate overflow tests for all\r
signed integer arithmetic operators, and call abort if they overflow. Overflow\r
is undefined in C and hard for people to reason about. LLVM IR also has\r
intrinsics for generating arithmetic with overflow checks directly.</li>\r
\r
+<li><b>Undefined behavior checking</b>: similar to adding -ftrapv, codegen could\r
+insert runtime checks for all sorts of different undefined behaviors, from \r
+reading uninitialized variables, buffer overflows, and many other things. This\r
+checking would be expensive, but the optimizers could eliminate many of the \r
+checks in some cases, and it would be very interesting to test code in this mode\r
+for certain crowds of people. Because the inserted code is coming from clang,\r
+the "abort" message could be very detailed about exactly what went wrong.</li>\r
+\r
<li><b>Continue work on C++ support</b>: Implementing all of C++ is a very big\r
job, but there are lots of little pieces that can be picked off and implemented.\r
See the <a href="cxx_status.html">C++ status report page</a> to find out what is\r