25 #include "pips_config.h"
42 #define FATAL(msg,value) {fprintf(stderr,msg,value);exit(1);}
bool check_procedure(call)
flint_check.c
void check_the_reference(reference)
bool check_the_call(call)
dimension flint_dimension(dimension d)
void flint_cons_dimension(list pc)
The only global variable : the name of the current module.
loop flint_loop(loop l)
Recursive verification of a loop as (range)+(expression)
call flint_call(call c)
This function checks the syntax of a call and recursively.
statement flint_statement(statement s)
expression flint_expression(expression e)
void flint_cons_expression(list pc)
These two functions operate on the list of expressions
reference flint_reference(reference r)
A reference is used when given a function the address of.
test flint_test(test t)
A test is taken as (expression)+(statement)+(statement)
#define FATAL(msg, value)
This file contains a set of functions defined to walk through the internal representation of a module...
void flint_unstructured(unstructured u)
instruction flint_instruction(instruction i)
Verification of an instruction with branching according
range flint_range(range r)
This function verifies that incremented or decremented
statement flint_current_statement
cproto-generated files
void flint_syntax(syntax s)
verification of syntaxes
void flint_cons_statement(list pc)
void flint_cons_actual_argument(list pc)
#define CONTROL_MAP(ctl, code, c, list)
Macro to walk through all the controls reachable from a given control node of an unstructured.
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#define CAR(pcons)
Get the value of the first element of a list.
void gen_free_list(list l)
free the spine of the list
void gen_mapl(gen_iter_func_t fp, const list l)
MAP.
void(* gen_iter_func_t)(void *)
#define unstructured_control
After the modification in Newgen: unstructured = entry:control x exit:control we have create a macro ...
#define is_instruction_block
soft block->sequence transition
#define instruction_block(i)
bool expression_reference_p(expression e)
Test if an expression is a reference.
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
#define syntax_reference(x)
#define instruction_loop(x)
#define dimension_lower(x)
#define range_increment(x)
#define EXPRESSION(x)
EXPRESSION.
@ is_instruction_unstructured
#define instruction_tag(x)
#define dimension_upper(x)
#define reference_indices(x)
#define test_condition(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define control_statement(x)
#define instruction_test(x)
#define expression_syntax(x)
#define instruction_unstructured(x)
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.