• DocumentCode
    2700371
  • Title

    Handling preprocessor-conditioned declarations

  • Author

    Aversano, Lerina ; Penta, Massimiliano Di ; Baxter, Ira D.

  • Author_Institution
    Dept. of Eng., Univ. of Sannio, Rome, Italy
  • fYear
    2002
  • fDate
    2002
  • Firstpage
    83
  • Lastpage
    92
  • 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.
  • Keywords
    program processors; software tools; configurable functionality; configuration-dependent programming entities; configuration-dependent programming variables; inconsistent variable usages; multiple hardware platforms; multiple operating systems; open source software systems; preprocessor-conditioned declaration handling; repeated compilation; software systems; type checking; Computer architecture; Data preprocessing; Design engineering; Fault detection; Hardware; Open source software; Operating systems; Programming profession; Software systems; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation, 2002. Proceedings. Second IEEE International Workshop on
  • Print_ISBN
    0-7695-1793-5
  • Type

    conf

  • DOI
    10.1109/SCAM.2002.1134108
  • Filename
    1134108