#include <stdlib.h>
#include <stdio.h>

typedef enum {
   NOTICE,
   WARN,
   ERROR,
   FATAL
} ErrorLevel;

#define errortest(elevel,emessage) \
     doerr(elevel,emessage), (elevel >= ERROR ? exit(0) : 0)
     
void doerr( ErrorLevel level, char *msg )
{
  printf( "Error: %s\n", msg );
}

static inline void  __attribute__((noreturn)) fake_exit() { }

int main()
{
  int i=0;
  errortest( NOTICE, "test1" );
  i=1;
  errortest( FATAL, "test2" );
  i=2;
  return 0;
}
