abi-compliance-checker
abi-compliance-checker copied to clipboard
intermittent failures -- spurious warnings
While evaluating abi-compliance-checker on a C++ library I get varying results when I run it multiple times on exactly the same input. This basically makes it unusable.
In my case, one function is sometimes reported as having a parameter order change, sometimes not. The function looks like
boost::shared_ptr<A> find(const std::set<boost::shared_ptr<A>, Comp>&, const std::string& key);
When abi-compliance-checker produces an incompatibility warning, it says that the parameter order has changed to
boost::shared_ptr<A> find(const std::set<boost::shared_ptr<A>, Comp>&, const std::string& key);
(i.e. it is not changed at all) but the mangled symbol is actually changed so that c++filt
prints
boost::shared_ptr<A> find(const std::set<Comp, boost::shared_ptr<A> >&, const std::string& key);
What changed here is the order of the template parameters for the std::set
, not the function parameter order. The mangled symbol with the swapped template parameters only exists in the compat_report.html
file (when an error is reported), not in any debug output.
I am using the ubuntu trusty packaged version of abi-compliance-checker.
Hello,
Thanks for reporting the issue. Please try the latest release from master and also try to compare ABI dumps created by the abi-dumper tool (https://github.com/lvc/abi-dumper).
I can try to debug the issue if you'll point me where to download the source code of the problem library.
Please try 2.0 Beta version of the tool from master.
Thank you.