LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
contract.hh File Reference

Replacement for cassert. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define __attribute__(Spec)   /* empty */
#define ATTRIBUTE_NORETURN   __attribute__((__noreturn__))
#define die(reason)   __Terminate(__FILE__, __LINE__, reason)
#define unreached()   die("unreachable code reached")
#define __TestCondition(condType, expr)
#define assertion(expr)   __TestCondition(Assertion,expr)
#define invariant(expr)   __TestCondition(Invariant,expr)
#define precondition(expr)   __TestCondition(Precondition,expr)
#define postcondition(expr)   __TestCondition(Postcondition,expr)

Functions

void __Terminate (const char *, int, const char *) ATTRIBUTE_NORETURN
void __FailedCondition (const char *condType, const char *condText, const char *fileName, int fileLine) ATTRIBUTE_NORETURN

Detailed Description

Replacement for cassert.

Macro Definition Documentation

#define __attribute__ (   Spec)    /* empty */
#define __TestCondition (   condType,
  expr 
)
Value:
((void) ((expr) ? 0 : (__FailedCondition( #condType, #expr, \
__FILE__, __LINE__ ), 0)))
#define ATTRIBUTE_NORETURN   __attribute__((__noreturn__))
#define invariant (   expr)    __TestCondition(Invariant,expr)
#define postcondition (   expr)    __TestCondition(Postcondition,expr)

Function Documentation

void __FailedCondition ( const char *  condType,
const char *  condText,
const char *  fileName,
int  fileLine 
)
void __Terminate ( const char *  ,
int  ,
const char *   
)

Referenced by misc::error::ice().