Backward Compatibility Violations and their Detection in C++ Legacy Code using Static Analysis
Tibor Brunner, Norbert Pataki, Zoltán Porkoláb · Acta Electrotechnica et Informatica · 2016
Programming languages evolve as the need for higher abstraction level increases.To satisfy these needs, languages introduce new features, which are usually additional elements, but many times these are not orthogonal to the existing ones.The C++ programming language is planned with backward compatibility kept in mind between particular releases.However, some of the new features introduced by C++11, like move semantics or multi-threading required the change of the standard library API and this leads to deviation in the meaning of existing programs.In this article we draw the attention on some of these semantic changes and provide a tool for automatically detecting them.