Combining preprocessor slicing with C/C++ language slicing

László Vidács, Árpád Beszédes and Tibor Gyimóthy
Of the very few practical implementations of program slicing algorithms, the majority deal with C/C++ programs. Yet, preprocessor-related issues have been marginally addressed by these slicers, despite the fact that ignoring (or only partially handling) these constructs may lead to serious inaccuracies in the slicing results and hence in the program analysis task being performed. Recently, an accurate slicing method for preprocessor-related constructs has been proposed, which - when combined with existing C/C++ language slicers - can provide more complete slices and hence a more successful analysis of programs written in one of these languages. In this paper, we present our approach which combines the two slicing methods and, via practical experiments, describe its benefits in terms of the completeness of the resulting slices.

Keywords: Program slicing, C/C++, Preprocessing, Preprocessor slicing.