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!


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 ( )

Definition at line 145 of file Passes.h.

Member Function Documentation

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

Definition at line 102 of file Checks.cpp.

Member Data Documentation

char OvershiftCheckPass::ID

Definition at line 143 of file Passes.h.

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