view anagram/support/assert.h @ 21:1c9dac05d040

Add lint-style FALLTHROUGH annotations to fallthrough cases. (in the parse engine and thus the output code) Document this, because the old output causes warnings with gcc10.
author David A. Holland
date Mon, 13 Jun 2022 00:04:38 -0400
parents f5acaf0c8a29
children
line wrap: on
line source

/*
 * AnaGram, A System for Syntax Directed Programming
 * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
 * Copyright 2006, 2007 David A. Holland. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * assert.h
 */

#ifndef ASSERT_H
#define ASSERT_H

// to prevent recursive asserting
extern int no_assertions;

void badAssertion(const char *file, int line);
#define assert(p) \
	(((/*volatile*/ int)(p)) ? (void)0 : badAssertion(__FILE__, __LINE__))


/*
 * This must be provided by each user interface and is NOT defined in
 * assert.cpp.
 */

void bailOut(const char *msg);

#endif /* ASSERT_H */