Add PointerObjectNULL and PointerObjectMismatch errors to prepare for upcoming pointer object tracking.
Add methods for tracking in-memory pointer objects (i.e. the pointed-to object of an in-memory pointer).

Note that this is not yet used.
Don't archive the trace if output is not enabled (this would cause non-tracing child processes to archive their parent's trace).
Add pointer object error-checking method checkPointer() to RuntimeErrorChecker.

Add pointer object tracking for Instructions and Arguments to TracedFunction.

Extract Argument pointer objects from the parent's CallInst when entering a new Function.

Set argv's Argument's pointer object in notifyArgs(), and the in-memory pointer objects for argv[0]..argv[argc-1]. Also do this for envp in notifyEnv().

Check pointer usage in PreLoad and PreStore.

When loading pointer values, get the pointer object from in-memory and set it on the load Instruction.

When storing pointer values, take the pointer object from the stored Value and set it in-memory.

Transfer pointer objects from the appropriate operand when performing GetElementPtrInst.
Add pointer object tracking for intercepted functions.
Add pointer object tracking for detect calls based standard functions.
Merge upstream development.
Disable reporting of pointer object errors until the tracking is complete.
Fix compilation under GCC.
Just print an error message when we can't get an in-memory pointer's object, while we flesh out the rest of the pointer object tracking.
Correct iteration over range in TraceProcessListener::copyInMemoryPointerObjects().
Correctly update OutputEnabled in traceClose().

Use a different error message when a runtime error is detected in a child process, to indicate that the error will not be in the trace.
Correctly retrieve pointer objects for llvm::Function and llvm::ConstantPointerNull Values.

Enable pointer object error checking.

Correct error checking of PreLoad and PreStore.

Correct pointer object error checking of CStdLibChecker::checkCStringArray().
Add the ability to clone Arg and RunError objects.
Add the ability to add permanent and temporary RunError "notes" to a RuntimeErrorChecker. These "notes" are added as additional errors to any raised RunErrors. This should facilitate the use of the additional error system within the existing checker architecture, and eventually lead to more informative (and consistent) error messages.
When a Function returns a pointer, transfer that pointer's object to the parent Function's active CallInst.
Only raise errors for failures with the pointer object tracking system in non-release builds, and raise hard errors rather than simply printing to llvm::errs().
Don't raise a hard error if we can't get an in-memory pointer's object, as this may be expected when tracing a buggy program.
When recording a new valid pointer returned by an intercepted Function, if the target memory area is not known then use the pointer's value as the object identifier. This is to support opaque pointers.
Update pointer origins last, because other changes might reveal the memory area that is referenced by a new valid pointer (e.g. a ResultStateRecorderForStaticInternalObject).