<a href="get_started.html#ccc"><code>ccc</code></a> might help you. Once it\r
compiles it should run. If not, that's a bug :)</li>\r
\r
-<li><b>Work on code generation for Objective C</b>: -emit-llvm support for\r
-Objective C is basically nonexistent at the time of this writing, this is a\r
-nice open project that can be tackled incrementally (one language feature at a\r
-time).</li>\r
-\r
-<li><b>Debug Info Generation</b>: -emit-llvm doesn't currently support emission\r
+<li><b>Debug Info Generation</b>: -emit-llvm doesn't fully support emission\r
of <a href="http://llvm.org/docs/SourceLevelDebugging.html">LLVM debug info</a>\r
-(which the code generator turns into DWARF). Adding this should be\r
-straight-forward if you follow the example of what llvm-gcc generates.</li>\r
+(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
+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>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