* #608 add implementation of FileSkipped callback to FindTrickICG to add include chains for headers that have already been preprocessed
* #608 add test SIM for FindTrickICG offsets SIM_test_icg_file_skipped
Yes, it is, it's missing all of them. Any clang/llvm version 3.5 and
above. So it's been broken for a while. We inherit from a
clang class that processes preprocessing statements. If we override
virtual functions of a certain signature, we can inject our code into
the preprocessing process. In this case we're looking for the use
of TRICK_ICG. Clang changed the function signature in version 3.5.
From 3.5 on our functions were never called, so we never would find
TRICK_ICG. I created new signatures for the functions post 3.5 so
they will work again.
Created a hook for the clang preprocessor. The hook does 2 things. It
keeps track to which header files we have entered and exited. Second it
searches for the use of TRICK_ICG. If we find an instance of TRICK_ICG we
mark all of the included files from this point up the chain as requiring
compensation. To compensate for using TRICK_ICG we write out the older
offset statements to get the location of variables in classes/structures.