Provide more notification information.
Disable RTTI in protocol buffers
Don't use the reserved name 'errno'.
More 'errno' -> 'errnum' renaming.
Added support for Choose expressions in the TESLA analyser.
These are compile-time constant conditionals created by the GCC
__builtin_choose_expr() builtin and commonly used within macros.
Fix Objective-C instrumentation (again).
Allow TESLA consumers to define their own printf function.
NULL-terminate C strings.
Fix function attributes on interposition.

LLVM functions attributes are independent of the function type and must
be propagated to the interposition function and all call instructions.
Start refactoring instrumenter.

Create new classes:
 - InstrContext holds LLVM-module-specific instrumentation 
 - TranslationFn represents an instrumentation function that translates events
 - EventTranslator represents a set of BasicBlocks that translate one event

Instantiate an InstrContext instance in the callee instrumenter, but don't actually use the new code yet.
Annotate a place to add more Objective-C stuff.

I think this is the Right Place to add the Objective-C receiver to the instrumentation function's parameters.
Explicitly enumerate switch values.
Clean up a few trivial things.

For instance, unused forward declarations, whitespace issues, stylistic violence done by the author of the Objective-C support... :)
Add missing "\n" in default ignored-event handler.
More robust structure-type building.

Only build named (structure) types that don't already exist and make sure the ones we build are named what we expect! The second ought to be unnecessary in the presence of the first, but assertions are good.
Implement EventTranslator::CallUpdateState.
TranslationFn::AddInstr*(Automaton, FunctionEvent)

This method adds the instrumentation required by a FunctionEvent (currently C-only, but I think I've annotated the places where Objective-C support code needs to be inserted).

This commit splits AddInstrumentation() into high-level methods that understand the semantics of program events and a low-level method that is agnostic to them but understands the details of translation function layout.
Assertion: debug stuff is available in debug mode.
Add support for calling translation functions.
Use new instrumentation API in callee contexts.

It actually works! However, we can't drop the old API yet: other kinds of instrumenters still use it.