Handling Preprocessor-Conditioned Declarations

  • Authors:
  • Lerina Aversano;Massimiliano Di Penta;Ira. D. Baxter

  • Affiliations:
  • -;-;-

  • Venue:
  • SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many software systems are developed with configurable functionality, and for multiple hardware platforms and operating systems. This can lead to thousands of possible configurations, requiring each configuration-dependent programming entity or variable to have different types. Such configuration-dependent variables are often declared inside preprocessor conditionals (e.g., C language).Preprocessor-conditioned declarations may be a source of problems. Commonly used configurations are type-checked by repeated compilation. Rarely used configurations are unlikely to be recently type checked, and in such configurations a variable may have a type not compatible to its use or it may contains uses of variables never defined.This paper proposes an approach to identify all possible types each variable declared in a software system can assume, and under which conditions. Inconsistent variable usages can then be detected for all possible configurations. Impacts of preprocessor-conditioned declaration in 17 different open source software systems are also reported.