It could be possible to make add a --detect-odr-violation option to abidw or to write a new tool named e.g odrcheck that would do that. The idea is to modify libabigail to add an ODR-checking mode that: 1/ disables type and decl de-duplication 2/ during type canonicalization, disables the ODR-based optimization which enables us to avoid comparing two types of the same kind and same name. Rather, structurally (memberwise) compare all types during type canonicalization. 3/ wen comparing class types, does not compare their virtual member functions 3/ during type canonicalization, if two types of the same kind have the same name but are structurally different flag them as violating ODR.