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
Link To Document