#include <stdlib.h>
#include <threads.h>
#include "language/ellipsis-special.h"
#include <stdio.h>
#include <stdint.h>
#include "ellipsis-pragma.h"
#include "ellipsis-macros.h"
Macros | |
#define | ELLIPSIS_CONTRACT(COUNT, COND, ACTION, VERB, CSTR, CTYPE, ...) |
#define | ELLIPSIS_CONTRACT_CHECK_STATIC(CTYPE, COND, CSTR, ...) |
#define | ELLIPSIS_CONTRACT_ICE_OR_TRUE(...) |
#define | ELLIPSIS_CONTRACT_IMPL(COUNT, COND, ACTION, VERB, CSTR, CTYPE, ...) |
#define | ELLIPSIS_CONTRACT_VIOLATION(COUNT, VERB, CTYPE, CSTR, ...) |
#define | ELLIPSIS_STR32_LITERAL ELLIPSIS_STR32_LITERAL_LOCAL |
#define | ELLIPSIS_TEST_ICE(...) (false ? ELLIPSIS_TO_VOIDS(__VA_ARGS__) : (ellipsis‿contracts‿is_ice*)nullptr) |
#define | ELLIPSIS_TO_VOIDS(...) ((void*)((uintptr_t)((__VA_ARGS__)-(__VA_ARGS__)))) |
#define | pragma_name(prefix, suffix) |
#define | STRINGIFY(...) STRINGIFY_(__VA_ARGS__) |
#define | STRINGIFY_(...) #__VA_ARGS__ |
Typedefs | |
typedef struct ellipsis‿contracts‿is_ice | ellipsis‿contracts‿is_ice |
Functions | |
static void | ellipsis‿pragma‿_Once‿init‿callback (void) |
static void | ellipsis‿pragma‿_Once‿init‿user (void) |
void | ellipsis‿pragma‿_Once‿init (void) |
static ellipsis‿token * | ellipsis‿pragma‿diagnostic (ellipsis‿token h[static 1]) |
ellipsis‿token * | ellipsis‿pragma‿error (ellipsis‿token h[static 1]) |
ellipsis‿token * | ellipsis‿pragma‿find (ellipsis‿str32 const *prefix, ellipsis‿str32 const *suffix) |
ellipsis‿token * | ellipsis‿pragma‿forward (ellipsis‿token h[static 1]) |
ellipsis‿token * | ellipsis‿pragma‿ignore (ellipsis‿token h[static 1]) |
void | ellipsis‿pragma‿insert (ellipsis‿str32 const *prefix, ellipsis‿str32 const *suffix, ellipsis‿token *(*cb)(ellipsis‿token *), bool back_in) |
ellipsis‿token * | ellipsis‿pragma‿once (ellipsis‿token h[static 1]) |
ellipsis‿token * | ellipsis‿pragma‿warning (ellipsis‿token h[static 1]) |
Variables | |
thread_local bool volatile | ellipsis‿contracts‿ignore‿dynamic |
thread_local bool volatile | ellipsis‿contracts‿proceed‿dynamic |
thread_local bool volatile | ellipsis‿contracts‿verbose‿dynamic |
static void(*const | ellipsis‿pragma‿_Once‿atexit‿pointer )(void) |
bool const | ellipsis‿pragma‿_Once‿strong = true |
#define ELLIPSIS_CONTRACT | ( | COUNT, | |
COND, | |||
ACTION, | |||
VERB, | |||
CSTR, | |||
CTYPE, | |||
... | |||
) |
#define ELLIPSIS_CONTRACT_CHECK_STATIC | ( | CTYPE, | |
COND, | |||
CSTR, | |||
... | |||
) |
#define ELLIPSIS_CONTRACT_ICE_OR_TRUE | ( | ... | ) |
#define ELLIPSIS_CONTRACT_IMPL | ( | COUNT, | |
COND, | |||
ACTION, | |||
VERB, | |||
CSTR, | |||
CTYPE, | |||
... | |||
) |
#define ELLIPSIS_CONTRACT_VIOLATION | ( | COUNT, | |
VERB, | |||
CTYPE, | |||
CSTR, | |||
... | |||
) |
#define ELLIPSIS_STR32_LITERAL ELLIPSIS_STR32_LITERAL_LOCAL |
#define ELLIPSIS_TEST_ICE | ( | ... | ) | (false ? ELLIPSIS_TO_VOIDS(__VA_ARGS__) : (ellipsis‿contracts‿is_ice*)nullptr) |
#define ELLIPSIS_TO_VOIDS | ( | ... | ) | ((void*)((uintptr_t)((__VA_ARGS__)-(__VA_ARGS__)))) |
#define pragma_name | ( | prefix, | |
suffix | |||
) |
#define STRINGIFY | ( | ... | ) | STRINGIFY_(__VA_ARGS__) |
#define STRINGIFY_ | ( | ... | ) | #__VA_ARGS__ |
typedef struct ellipsis‿contracts‿is_ice ellipsis‿contracts‿is_ice |
|
static |
References __FILE__, ellipsis‿pragma‿_Once‿atexit‿pointer, ellipsis‿pragma‿_Once‿init‿user(), and GNU_ATTR_USED.
Referenced by ellipsis‿pragma‿_Once‿init().
|
static |
References __FILE__, ellipsis‿macros‿_Once‿init(), ellipsis‿macros‿_Once‿strong, ellipsis‿pragma‿error(), ellipsis‿pragma‿insert(), ellipsis‿pragma‿once(), ellipsis‿pragma‿warning(), ellipsis‿token‿_Once‿init(), and GNU_ATTR_USED.
Referenced by ellipsis‿pragma‿_Once‿init‿callback().
void ellipsis‿pragma‿_Once‿init | ( | void | ) |
References ellipsis‿pragma‿_Once‿init‿callback().
Referenced by ellipsis‿pragma‿find(), and ellipsis‿pragma‿insert().
|
static |
References ellipsis‿str32‿fputs().
Referenced by ellipsis‿pragma‿error(), and ellipsis‿pragma‿warning().
ellipsis‿token * ellipsis‿pragma‿error | ( | ellipsis‿token | h[static 1] | ) |
References ellipsis‿pragma‿diagnostic(), and ELLIPSIS_ERROR.
Referenced by ellipsis‿pragma‿_Once‿init‿user().
ellipsis‿token * ellipsis‿pragma‿find | ( | ellipsis‿str32 const * | prefix, |
ellipsis‿str32 const * | suffix | ||
) |
References __FILE__, ellipsis‿token::contents, ellipsis‿macros‿find(), ellipsis‿pragma‿_Once‿init(), ellipsis‿pragma‿_Once‿strong, GNU_ATTR_USED, and pragma_name.
Referenced by ellipsis‿directive‿pragma().
ellipsis‿token * ellipsis‿pragma‿forward | ( | ellipsis‿token | h[static 1] | ) |
References nominal, and punctuator.
Referenced by ellipsis‿directive‿pragma(), and ellipsis‿language‿c‿_Once‿init‿user().
ellipsis‿token * ellipsis‿pragma‿ignore | ( | ellipsis‿token | h[static 1] | ) |
void ellipsis‿pragma‿insert | ( | ellipsis‿str32 const * | prefix, |
ellipsis‿str32 const * | suffix, | ||
ellipsis‿token *(*)(ellipsis‿token *) | cb, | ||
bool | back_in | ||
) |
References __FILE__, ellipsis‿token::back_in, ellipsis‿token::callback, ellipsis‿token::cat, ellipsis‿macros‿insert(), ellipsis‿pragma‿_Once‿init(), ellipsis‿pragma‿_Once‿strong, ellipsis‿token‿what‿callback, GNU_ATTR_USED, ellipsis‿token::is_functional, ellipsis‿token::is_undefinable, ellipsis‿token::is_what, macro, and pragma_name.
Referenced by ellipsis‿language‿c‿_Once‿init‿user(), and ellipsis‿pragma‿_Once‿init‿user().
ellipsis‿token * ellipsis‿pragma‿once | ( | ellipsis‿token | h[static 1] | ) |
References directive, ellipsis‿token‿list‿append(), ellipsis‿token‿list‿close(), ELLIPSIS_CONTRACT, and ellipsis‿token::payload.
Referenced by ellipsis‿pragma‿_Once‿init‿user().
ellipsis‿token * ellipsis‿pragma‿warning | ( | ellipsis‿token | h[static 1] | ) |
References ellipsis‿pragma‿diagnostic(), and ELLIPSIS_WARNING.
Referenced by ellipsis‿pragma‿_Once‿init‿user().
|
extern |
|
extern |
|
extern |
|
static |
Referenced by ellipsis‿pragma‿_Once‿init‿callback().
bool const ellipsis‿pragma‿_Once‿strong = true |
Referenced by ellipsis‿pragma‿find(), and ellipsis‿pragma‿insert().