Do not use GCC-4.9 with Insure++
Insure++ needs to take the address of entities in order to track them. But, references cannot have their address taken, so Insure++ creates a shadow pointer variable pointing to the thing that is being referenced. It then does a normal pointer check against this shadow pointer.
When using GCC-4.9, there is a known issue with this compiler where it is mis-compiling the code and writing stack garbage into the shadow pointer that Insure++ will be checking. This can lead to false outputs when using this compiler with Insure++.
We highly recommend you do not continue to use the GCC-4.9 compiler and instead use a more recent release of the GCC compiler, like GCC-5.4.0 and above, as this issue with GCC-4.9 was never resolved in that version and was resolved later in the 5.X compilers.
Here are some links with additional information about the GCC-4.9 compiler issue: