klee
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
klee::OvershiftCheckPass Class Reference

#include <Passes.h>

Inherits ModulePass.

Public Member Functions

 OvershiftCheckPass ()
 
virtual bool runOnModule (llvm::Module &M)
 

Static Private Attributes

static char ID
 

Detailed Description

This pass injects checks to check for overshifting.

Overshifting is where a Shl, LShr or AShr is performed where the shift amount is greater than width of the bitvector being shifted. In LLVM (and in C/C++) this undefined behaviour!

Example:

unsigned char x=15;
x << 4 ; // Defined behaviour
x << 8 ; // Undefined behaviour
x << 255 ; // Undefined behaviour

Definition at line 142 of file Passes.h.

Constructor & Destructor Documentation

klee::OvershiftCheckPass::OvershiftCheckPass ( )
inline

Definition at line 145 of file Passes.h.

Member Function Documentation

bool OvershiftCheckPass::runOnModule ( llvm::Module &  M)
virtual

Definition at line 102 of file Checks.cpp.

Member Data Documentation

char OvershiftCheckPass::ID
staticprivate

Definition at line 143 of file Passes.h.


The documentation for this class was generated from the following files: