Usage
  • 21 views
  • 22 downloads

SafeType: Detecting Type Violations for Type-Based Alias Analysis of C

  • Author / Creator
    Ireland, Iain A.
  • A type-based alias analysis uses the types of variables in a program to assist in determining the alias relations of those variables. The C standard imposes restrictions on the types of expressions that may access objects in memory, with the explicit intent of specifying when two objects may be aliased. In practice, however, many C programs do not conform to these restrictions, making type-based alias analysis unsound for those programs. As a result, type-based alias analysis is frequently disabled. This thesis presents SafeType, a sound approach for compile-time detection of violations of the C standard’s type-based restrictions on memory access; describes an implementation of SafeType in the IBM XL C compiler, extended with flow- and context-sensitive queries to handle variables with type void *; evaluates that implementation, showing that it scales to programs with hundreds of thousands of lines of code; and identifies a previously unreported violation of the C standard’s type-based restrictions on memory access in the 470.lbm benchmark in SPEC CPU2006.

  • Subjects / Keywords
  • Graduation date
    2013-11
  • Type of Item
    Thesis
  • Degree
    Master of Science
  • DOI
    https://doi.org/10.7939/R3G737C31
  • License
    This thesis is made available by the University of Alberta Libraries with permission of the copyright owner solely for non-commercial purposes. This thesis, or any portion thereof, may not otherwise be copied or reproduced without the written consent of the copyright owner, except to the extent permitted by Canadian copyright law.
  • Language
    English
  • Institution
    University of Alberta
  • Degree level
    Master's
  • Department
    • Department of Computing Science
  • Supervisor / co-supervisor and their department(s)
    • Amaral, Jose Nelson (Computing Science)
  • Examining committee members and their departments
    • Bowman, John (Mathematical and Statistical Sciences)
    • Amaral, Jose Nelson (Computing Science)
    • Hoover, James (Computing Science)