abi-compliance-checker icon indicating copy to clipboard operation
abi-compliance-checker copied to clipboard

intermittent failures -- spurious warnings

Open alexander-buerger-met-no opened this issue 9 years ago • 2 comments

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.

lvc avatar Aug 14 '15 15:08 lvc

Please try 2.0 Beta version of the tool from master.

Thank you.

lvc avatar Nov 14 '16 10:11 lvc