Wizard Chronical
This list contains tidbits of information that are so helpful once you know it, but is generally impossible to find.
Explanation: Insure instrumentation requires creating temporaries in certain cases. Because of that, copy constructor, assignment operator and destructor could be called more often in instrumented code.
Provided these functions are implemented correctly, there is no change in the (overall) program behavior.
If you do not want to implement e.g. copy constructor, you can declare it private, and insure will not try to make a temporary (but will not be able to perform certain checks either).
If you do not make it private, but simply "expect" it not to be called, you are following a bad programming practice: even if you are careful enough never to write any code that will implicitly call the copy ctor, can you make the same promise for all the people who will be maintaining your code 10 years from now?
Solution: Create your class infra-structure completely (copy
contructor, assignment operator, and destructor!)
(added by Henrique Andrade (hcma@cs.umd.edu) - based on personal message
exchanged by Chialin Chang and Parasoft Tech Support)