25 #include "pips_config.h"
79 #include "constants.h"
80 #include "resources.h"
89 #define GET_TYPE(h, e) ((basic)hash_get(h, (char*)(e)))
90 #define PUT_TYPE(h, e, b) hash_put(h, (char*)(e), (char*)(b))
1040 basic lower, upper, incr;
1094 sprintf(s,
"%ld", l);
1107 for(i = 0; i < len; i++)
1109 if (s[i]==
'E' || s[i]==
'e')
1133 for(i = 0; i < len; i++)
1135 if (s[i]==
'D' || s[i]==
'd')
1359 context->number_of_simplication++;
1404 exp_real2 = exp_real;
1407 if (exp_imag != NULL)
1411 exp_imag2 = exp_imag;
1448 exp_real2 = exp_real;
1450 if (exp_imag != NULL)
1454 exp_imag2 = exp_imag;
1581 return exp_constant;
1586 if (cast_function == NULL)
1598 context->number_of_conversion++;
1605 #define TC_DCOMPLEX \
1606 get_bool_property("TYPE_CHECKER_DOUBLE_COMPLEX_EXTENSION")
1609 #define TC_LONGDCOMPLEX \
1610 get_bool_property("TYPE_CHECKER_LONG_DOUBLE_COMPLEX_EXTENSION")
1766 bool longinteger_ok,
1767 bool longlonginteger_ok,
1773 bool longdcomplex_ok,
1813 "not typed '%s' used as a function.",
1833 "#%d argument of '%s' must be "
1834 "%s%s%s%s%s%s%s%s%s%s%s but not %s",
1837 integer_ok?
"INT, ":
"",
1840 longinteger_ok?
"":
"",
1841 longlonginteger_ok?
"":
"",
1842 real_ok?
"REAL, ":
"",
1843 double_ok?
"DOUBLE, ":
"",
1846 longdouble_ok?
"":
"",
1847 complex_ok?
"COMPLEX, ":
"",
1848 dcomplex_ok?
"DCOMPLEX, ":
"",
1850 longdcomplex_ok?
"":
"",
1851 logical_ok?
"LOGICAL, ":
"",
1852 character_ok?
"CHARACTER, ":
"",
1858 "#%d argument of '%s' must be "
1859 "%s%s%s%s%s%s%s%s%s%s%s but not %s",
1862 integer_ok?
"int, ":
"",
1863 longinteger_ok?
"long int, ":
"",
1864 longlonginteger_ok?
"long long int, ":
"",
1865 real_ok?
"float, ":
"",
1866 double_ok?
"double, ":
"",
1867 longdouble_ok?
"long double, ":
"",
1868 complex_ok?
"complex, ":
"",
1869 dcomplex_ok?
"double complex, ":
"",
1870 longdcomplex_ok?
"long double complex, ":
"",
1871 logical_ok?
"bool, ":
"",
1873 character_ok?
"char, ":
"",
1881 arg_cmplx = arg_cmplx ||
1884 arg_double = arg_double ||
1888 if (arg_cmplx && arg_double)
1891 "mixed complex and double arguments of '%s' forbidden",
1904 (c,
context,
true,
true,
true,
true,
true,
true,
true,
TC_DCOMPLEX,
TC_LONGDCOMPLEX,
false,
true);
1911 (c,
context,
true,
true,
true,
true,
true,
true,
true,
TC_DCOMPLEX,
TC_LONGDCOMPLEX,
false,
false);
1917 (c,
context,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true);
1923 (c,
context,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false);
1929 (c,
context,
false,
false,
false,
true,
true,
true,
false,
false,
false,
false,
false);
1936 (c,
context,
true,
true,
true,
true,
false,
false,
false,
false,
false,
false,
false);
1942 (c,
context,
true,
true,
true,
true,
true,
true,
false,
false,
false,
false,
false);
1957 (c,
context,
false,
false,
false,
true,
true,
true,
true,
TC_DCOMPLEX,
TC_LONGDCOMPLEX,
false,
false);
2138 bool check_arg =
false;
2205 if(check_arg ==
false)
2208 "Invalid argument(s) to '%s'!",
2223 type_INT, type_INT);
2232 type_LINT, type_LINT);
2241 type_LLINT, type_LLINT);
2250 type_REAL, type_REAL);
2259 type_DBLE, type_DBLE);
2268 type_LDBLE, type_LDBLE);
2277 type_CMPLX, type_CMPLX);
2286 type_DCMPLX, type_DCMPLX);
2295 type_LDCMPLX, type_LDCMPLX);
2305 type_LDCMPLX, type_LDBLE);
2415 type_DBLE, type_LINT);
2427 type_DBLE, type_LLINT);
2686 context->number_of_conversion++;
2720 context->number_of_conversion++;
2794 "Arguments of assignment '%s' are not compatible",
2829 "Argument #1 must be a reference to string");
2839 "Argument #%d must be an integer expression",
2847 "Too many of arguments for sub-string function");
2857 "Lack of %d argument(s) for sub-string function",
2880 "Argument #1 must be a reference to string");
2890 "Argument #%d must be an integer expression",
2900 "Argument #4 must be a string expression");
2907 "Too many of arguments for assign sub-string function");
2917 "Lack of %d argument(s) for assign sub-string function",
2938 add_one_line_of_comment((statement) stack_head(context->stats),
2939 "Argument #1 must be an integer expression");
2941 context->number_of_error++;
2951 "Too many of arguments for function '%s'",
2963 "Lack of %d argument(s) for function '%s'",
2975 pips_internal_error(
"This should not be type-checked because it is not Fortran function");
2996 "Argument #1 must be a reference to integer");
3006 "Argument #2 must be a range of integer");
3017 "Range must be Integer, Real or Double!");
3033 "Lack of %d argument(s) for function '%s'",
3062 type call_type, return_type;
3084 "Statement '%s' doesn't need any argument",
3103 basic b_int, b_char;
3117 "Argument #1 of '%s' must be an integer or character constant",
3129 "Argument must be an integer of at most 5 digits (instead of '%d')",
3139 "Statement '%s' needs at most an argument, " \
3140 "neight integer constant nor character constant",
3166 "Argument #1 of '%s' must be an integer expression",
3175 "Statement '%s' needs at most an integer expression",
3209 "%s specifier must be a label statement", s);
3226 "%s specifier must be an integer expression", s);
3242 "%s specifier must be a character expression", s);
3259 "%s specifier must be a label, an integer or character expression", s);
3277 "%s specifier must be a variable or an array element of %s", s,
3299 "UNIT specifier must be an integer or character expression");
3476 const char* specifier,
3485 if (check_contents(contents,
context))
3494 "Specifier '%s' is not allowed", name);
3533 for (; args; args =
CDR(
CDR(args)))
3539 pips_assert(
"Specifier must be a call with arguments",
3545 if (!
check_spec(
"UNIT=", a_unit, spec, cont, ctxt,
3549 !
check_spec(
"IOSTAT=", a_iostat, spec, cont, ctxt,
3557 !
check_spec(
"IOLIST=", a_iolist, spec, cont, ctxt,
3559 !
check_spec(
"FILE=", a_file, spec, cont, ctxt,
3561 !
check_spec(
"STATUS=", a_status, spec, cont, ctxt,
3563 !
check_spec(
"ACCESS=", a_access, spec, cont, ctxt,
3565 !
check_spec(
"FORM=", a_form, spec, cont, ctxt,
3567 !
check_spec(
"BLANK=", a_blank, spec, cont, ctxt,
3569 !
check_spec(
"RECL=", a_recl, spec, cont, ctxt,
3571 !
check_spec(
"EXIST=", a_exist, spec, cont, ctxt,
3573 !
check_spec(
"OPENED=", a_opened, spec, cont, ctxt,
3575 !
check_spec(
"NUMBER=", a_number, spec, cont, ctxt,
3577 !
check_spec(
"NAMED=", a_named, spec, cont, ctxt,
3579 !
check_spec(
"NAME=", a_name, spec, cont, ctxt,
3581 !
check_spec(
"SEQUENTIAL=", a_sequential, spec, cont, ctxt,
3583 !
check_spec(
"DIRECT=", a_direct, spec, cont, ctxt,
3585 !
check_spec(
"FORMATED=", a_formatted, spec, cont, ctxt,
3587 !
check_spec(
"UNFORMATED=", a_unformatted, spec, cont, ctxt,
3589 !
check_spec(
"NEXTREC=", a_nextrec, spec, cont, ctxt,
3593 "Unexpected specifier '%s'", spec);
3608 true,
true,
true,
true,
true,
true,
true,
3610 false,
false,
false,
false,
false,
false,
false,
false,
3612 false,
false,
false,
false,
false,
false,
3625 true,
false,
false,
true,
true,
false,
false,
3627 true,
true,
true,
true,
true,
true,
false,
false,
3629 false,
false,
false,
false,
false,
false,
3642 true,
false,
false,
true,
true,
false,
false,
3644 false,
true,
false,
false,
false,
false,
false,
false,
3646 false,
false,
false,
false,
false,
false,
3659 true,
false,
false,
true,
true,
false,
false,
3661 true,
false,
true,
true,
true,
true,
true,
true,
3663 true,
true,
true,
true,
true,
true,
3676 true,
false,
false,
true,
true,
false,
false,
3678 false,
false,
false,
false,
false,
false,
false,
false,
3680 false,
false,
false,
false,
false,
false,
3692 true,
false,
false,
true,
true,
false,
false,
3694 false,
false,
false,
false,
false,
false,
false,
false,
3696 false,
false,
false,
false,
false,
false,
3708 true,
false,
false,
true,
true,
false,
false,
3710 false,
false,
false,
false,
false,
false,
false,
false,
3712 false,
false,
false,
false,
false,
false,
3725 "FORMAT statement needs a format specification");
3734 "Format specification must be a string");
3749 string arg_int_name,
3750 string arg_real_name,
3751 string arg_double_name,
3752 string arg_complex_name,
3753 string arg_dcomplex_name)
3758 string specific_name = NULL;
3767 specific_name = arg_int_name;
3771 specific_name = arg_real_name;
3775 specific_name = arg_double_name;
3779 specific_name = arg_complex_name;
3784 specific_name = arg_dcomplex_name;
3792 if(specific_name != NULL &&
3798 context->number_of_simplication++;
3807 NULL,
"AINT",
"DINT", NULL, NULL);
3814 NULL,
"ANINT",
"DNINT", NULL, NULL);
3821 NULL,
"NINT",
"IDNINT", NULL, NULL);
3828 "IABS",
"ABS",
"DABS",
"CABS",
"CDABS");
3835 "MOD",
"AMOD",
"DMOD", NULL, NULL);
3842 "ISIGN",
"SIGN",
"DSIGN", NULL, NULL);
3849 "IDIM",
"DIM",
"DDIM", NULL, NULL);
3856 "MAX0",
"AMAX1",
"DMAX1", NULL, NULL);
3863 "MIN0",
"AMIN1",
"DMIN1", NULL, NULL);
3870 NULL,
"SQRT",
"DSQRT",
"CSQRT",
"CDSQRT");
3877 NULL,
"EXP",
"DEXP",
"CEXP",
"CDEXP");
3884 NULL,
"ALOG",
"DLOG",
"CLOG",
"CDLOG");
3891 NULL,
"ALOG10",
"DLOG10", NULL, NULL);
3898 NULL,
"SIN",
"DSIN",
"CSIN",
"CDSIN");
3905 NULL,
"COS",
"DCOS",
"CCOS",
"CDCOS");
3912 NULL,
"TAN",
"DTAN", NULL, NULL);
3919 NULL,
"ASIN",
"DASIN", NULL, NULL);
3926 NULL,
"ACOS",
"DACOS", NULL, NULL);
3933 NULL,
"ATAN",
"DATAN", NULL, NULL);
3940 NULL,
"ATAN2",
"DATAN2", NULL, NULL);
3947 NULL,
"SINH",
"DSINH", NULL, NULL);
3954 NULL,
"COSH",
"DCOSH", NULL, NULL);
3961 NULL,
"TANH",
"DTANH", NULL, NULL);
4018 context->number_of_simplication++;
4035 context->number_of_simplication++;
4052 context->number_of_simplication++;
4064 context->number_of_simplication++;
4102 context->number_of_simplication++;
4125 context->number_of_simplication++;
4143 if (exp_tmp != NULL)
4355 intrinsic_type(arity),
5621 pips_debug(1,
"bootstraping in workspace %s\n", workspace);
normalized copy_normalized(normalized p)
NORMALIZED.
void free_normalized(normalized p)
functional make_functional(list a1, type a2)
call make_call(entity a1, list a2)
constant make_constant(enum constant_utype tag, void *val)
basic make_basic_complex(intptr_t _field_)
parameter make_parameter(type a1, mode a2, dummy a3)
expression make_expression(syntax a1, normalized a2)
void free_parameter(parameter p)
mode make_mode(enum mode_utype tag, void *val)
storage make_storage_rom(void)
type copy_type(type p)
TYPE.
basic copy_basic(basic p)
BASIC.
basic make_basic_overloaded(void)
storage make_storage(enum storage_utype tag, void *val)
language make_language_unknown(void)
basic make_basic_int(intptr_t _field_)
ram make_ram(entity a1, entity a2, intptr_t a3, list a4)
type make_type_void(list _field_)
expression copy_expression(expression p)
EXPRESSION.
value make_value(enum value_utype tag, void *val)
basic make_basic_float(intptr_t _field_)
dimension make_dimension(expression a1, expression a2, list a3)
basic make_basic_logical(intptr_t _field_)
area make_area(intptr_t a1, list a2)
basic make_basic_string(value _field_)
code make_code(list a1, string a2, sequence a3, list a4, language a5)
call copy_call(call p)
CALL.
syntax copy_syntax(syntax p)
SYNTAX.
void free_expression(expression p)
constant make_constant_litteral(void)
entity copy_entity(entity p)
ENTITY.
void free_syntax(syntax p)
syntax make_syntax(enum syntax_utype tag, void *val)
dummy make_dummy_unknown(void)
mode make_mode_value(void)
sequence make_sequence(list a)
qualifier make_qualifier_const(void)
bool type_consistent_p(type p)
type make_type(enum type_utype tag, void *val)
bool db_resource_p(const char *rname, const char *oname)
true if exists and in loaded or stored state.
void const char const char const int
size_t gen_array_nitems(const gen_array_t a)
void * gen_array_item(const gen_array_t a, size_t i)
void gen_array_free(gen_array_t a)
bdt base
Current expression.
basic(* typing_function_t)(call, type_context_p)
#define INT_LENGTH
should be some properties to accomodate cray codes??
void(* switch_name_function)(expression, type_context_p)
static void switch_specific_dcmplx(expression exp, type_context_p context)
static void switch_specific_asin(expression exp, type_context_p context)
ASIN.
static basic typing_function_real_to_double(call c, type_context_p context)
static type double_to_integer_type(int n)
static bool arguments_are_longdcomplex(call c, hash_table types)
MB.
bool check_loop_range(range, hash_table)
static type overloaded_to_double_type(int n)
static bool check_spec(string name, bool allowed, const char *specifier, expression contents, type_context_p context, bool(*check_contents)(expression, type_context_p))
void CreateAreas()
cproto-generated files
static basic typing_function_real_to_real(call c, type_context_p context)
static void switch_generic_to_specific(expression exp, type_context_p context, string arg_int_name, string arg_real_name, string arg_double_name, string arg_complex_name, string arg_dcomplex_name)
static basic typing_function_complex_to_real(call c, type_context_p context)
static basic typing_function_overloaded(call __attribute__((unused)) c, type_context_p __attribute__((unused)) context)
static basic check_close(call c, type_context_p context)
static call convert_constant_from_double_to_dcomplex(call c)
DOUBLE -> DCOMPLEX e.g: DCMPLX(-5.9D5) => (-5.9D5, 0.0)
static call convert_constant_from_real_to_double(call c)
REAL -> DOUBLE e.g: DBLE(-5.9E-2) => -5.9D-2.
static call convert_constant_from_real_to_dcomplex(call c)
REAL -> DCOMPLEX e.g: DCMPLX(-5.9E5) => (-5.9D5, 0.0D0)
static basic typing_buffer_inout(call c, type_context_p context)
static void switch_specific_max(expression exp, type_context_p context)
MAX.
static basic typing_substring(call c, type_context_p context)
type __attribute__((unused))
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date : Modified : 04 04 95 ...
static void CreateRandomSeed()
static bool arguments_are_longinteger(call c, hash_table types)
MB.
static basic typing_implied_do(call c, type_context_p context)
static type complex_to_real_type(int n)
#define TC_LONGDCOMPLEX
MB : Type check long double complex.
static type real_to_integer_type(int n)
static bool arguments_are_IR(call c, type_context_p context)
static bool arguments_are_IRDC(call c, type_context_p context)
static basic typing_logical_operator(call c, type_context_p context)
static call convert_constant_from_int_to_dcomplex(call c)
INT -> DCOMPLEX e.g: DCMPLX(-5) => (-5D0, 0.0D0)
static bool check_if_basics_ok(list le, hash_table types, bool(*basic_ok)(basic))
Verify if all the arguments basic of function C are INTEGER If there is no argument,...
static entity get_cast_function_for_basic(basic cast, basic from)
type longinteger_to_overloaded_type(int n)
MB.
static basic typing_function_constant_complex(call c, type_context_p context)
CMPLX_.
static basic typing_function_dcomplex_to_double(call c, type_context_p context)
static bool arguments_are_IRDCS(call c, type_context_p context)
type overloaded_to_void_type(int n)
static type real_to_longlonginteger_type(int n)
MB.
static basic typing_function_longdouble_to_longint(call c, type_context_p context)
MB.
static basic check_backspace(call c, type_context_p context)
static basic typing_function_double_to_int(call c, type_context_p context)
static call convert_constant_from_int_to_double(call c)
INT -> DOUBLE e.g: DBLE(10) => 10.0.
static bool is_opened_specifier(expression exp, type_context_p context)
#define TC_DCOMPLEX
Type check double complex?
void CreateIntrinsics(set module_list)
type MakeVoidResult()
Move the following functions to ri-util/type.c.
static basic typing_function_RealDouble_to_RealDouble(call c, type_context_p context)
static bool is_basic_longdcomplex_p(basic b)
MB.
static type longinteger_to_longinteger_type(int n)
MB.
static basic no_typing(call __attribute__((unused)) c, type_context_p __attribute__((unused)) context)
static bool is_file_specifier(expression exp, type_context_p context)
static bool arguments_are_complex(call c, hash_table types)
static type integer_to_logical_type(int n)
to handle BTEST function which takes integer as parameter and returns logical.
static void CreateHeapAbstractState()
static list make_parameter_list(int n, parameter(*mkprm)(void))
static void switch_specific_tan(expression exp, type_context_p context)
TAN.
static bool is_named_specifier(expression exp, type_context_p context)
static basic typing_function_RealDouble_to_Integer(call c, type_context_p context)
static bool is_err_specifier(expression exp, type_context_p context)
Error specifier is a label statement.
static basic typing_function_longdouble_to_longlongint(call c, type_context_p context)
MB.
switch_name_function get_switch_name_function_for_intrinsic(const char *name)
static basic check_rewind(call c, type_context_p context)
static hash_table intrinsic_type_descriptor_mapping
static type overloaded_to_real_type(int n)
static void simplification_conversion(expression exp, basic to_basic, type_context_p context)
static basic typing_function_int_to_int(call c, type_context_p context)
static void switch_specific_sinh(expression exp, type_context_p context)
SINH.
static type longdouble_to_longdouble_type(int n)
MB.
static basic typing_function_longdouble_to_int(call c, type_context_p context)
MB.
static basic check_endfile(call c, type_context_p context)
type pointer_to_overloaded_type(int n)
static bool is_sequential_specifier(expression exp, type_context_p context)
static bool is_record_specifier(expression exp, type_context_p context)
static bool is_basic_int_p(basic b)
static type longdoublecomplex_to_longdoublecomplex_type(int n)
MB.
static call convert_constant_from_double_to_complex(call c)
DOUBLE -> COMPLEX e.g: CMPLX(-5.9D5) => (-5.9E5, 0.0)
static bool arguments_are_longdouble(call c, hash_table types)
MB.
static bool is_format_specifier(expression exp, type_context_p context)
static basic check_read_write(call c, type_context_p context)
static basic typing_function_int_to_real(call c, type_context_p context)
static void switch_specific_mod(expression exp, type_context_p context)
MOD.
static basic typing_function_RealDoubleComplex_to_RealDoubleComplex(call c, type_context_p context)
static type double_to_longlonginteger_type(int n)
MB.
static basic typing_function_IntegerRealDouble_to_IntegerRealDouble(call c, type_context_p context)
static basic typing_function_char_to_logical(call c, type_context_p context)
static type overloaded_to_doublecomplex_type(int n)
static basic typing_function_double_to_double(call c, type_context_p context)
type integer_to_void_type(int n)
static bool is_iostat_specifier(expression exp, type_context_p context)
Integer variable or integer array element which is maybe modified.
static void switch_specific_dim(expression exp, type_context_p context)
DIM.
static basic typing_function_conversion_to_complex(call c, type_context_p context)
static basic typing_function_format_name(call __attribute__((unused)) c, type_context_p __attribute__((unused)) context)
static basic typing_function_argument_type_to_return_type(call c, type_context_p context, basic from_type, basic to_type)
static bool is_basic_complex_p(basic b)
static void simplification_dcomplex(expression, type_context_p)
static type char_pointer_to_double_type(int n __attribute__((unused)))
C only because of pointer.
type integer_to_overloaded_type(int n)
static basic typing_function_longdcomplex_to_longdouble(call c, type_context_p context)
MB.
static bool arguments_are_IRD(call c, type_context_p context)
static void switch_specific_log10(expression exp, type_context_p context)
LOG10.
static type default_intrinsic_type(int n)
The default intrinsic type is a functional type with n overloaded arguments returning an overloaded r...
static type longdouble_to_longlonginteger_type(int n)
MB.
static void switch_specific_anint(expression exp, type_context_p context)
ANINT.
static bool is_end_specifier(expression exp, type_context_p context)
static bool is_basic_longint_p(basic b)
MB.
static basic typing_arithmetic_operator(call c, type_context_p context)
static void switch_specific_aint(expression exp, type_context_p context)
AINT.
static void switch_specific_min(expression exp, type_context_p context)
MIN.
typing_function_t get_typing_function_for_intrinsic(const char *name)
static call convert_constant_from_double_to_real(call c)
DOUBLE -> REAL e.g: REAL(-5.9D-2) => -5.9E-2.
static bool is_basic_longlongint_p(basic b)
MB.
static basic basic_union_arguments(call c, hash_table types)
Determine the longest basic among the arguments of c.
static type substring_type(int n)
static bool is_nextrec_specifier(expression exp, type_context_p context)
static basic statement_with_at_most_one_expression_integer(call c, type_context_p context)
static void switch_specific_atan(expression exp, type_context_p context)
ATAN.
static basic typing_function_real_to_longint(call c, type_context_p context)
MB.
static type real_to_real_type(int n)
static bool is_basic_real_p(basic b)
static type character_to_logical_type(int n)
static bool arguments_are_integer(call c, hash_table types)
static void simplification_real(expression exp, type_context_p context)
#define GET_TYPE(h, e)
Working with hash_table of basic.
static type integer_to_real_type(int n)
static type doublecomplex_to_doublecomplex_type(int n)
static type assign_substring_type(int n)
string MakeFileName(char *prefix, char *base, char *suffix)
static void CreateMemmoveAbstractState()
static bool is_formated_specifier(expression exp, type_context_p context)
static bool is_exist_specifier(expression exp, type_context_p context)
static bool is_access_specifier(expression exp, type_context_p context)
static basic typing_function_longint_to_longint(call c, type_context_p context)
MB.
static bool arguments_are_RDC(call c, type_context_p context)
static basic typing_function_longlongint_to_longlongint(call c, type_context_p context)
MB.
static void switch_specific_log(expression exp, type_context_p context)
LOG.
static type void_to_void_to_int_pointer_type(int n __attribute__((unused)))
C only because of pointer.
static basic statement_with_at_most_one_integer_or_character(call c, type_context_p context)
static bool is_recl_specifier(expression exp, type_context_p context)
static basic typing_function_conversion_to_real(call c, type_context_p context)
static void switch_specific_sqrt(expression exp, type_context_p context)
SQRT.
static basic typing_function_int_to_logical(call c, type_context_p context)
function added to handle one of the bit manipulation functions : BTEST.
static basic typing_of_assign(call c, type_context_p context)
#define PUT_TYPE(h, e, b)
static bool is_form_specifier(expression exp, type_context_p context)
static basic typing_power_operator(call c, type_context_p context)
static basic typing_function_constant_dcomplex(call c, type_context_p context)
DCMPLX_.
static basic check_inquire(call c, type_context_p context)
static bool is_number_specifier(expression exp, type_context_p context)
static void simplification_complex(expression, type_context_p)
forward declarations
static type longdouble_to_integer_type(int n)
MB.
static bool arguments_are_something(call c, type_context_p context, bool integer_ok, bool longinteger_ok, bool longlonginteger_ok, bool real_ok, bool double_ok, bool longdouble_ok, bool complex_ok, bool dcomplex_ok, bool longdcomplex_ok, bool logical_ok, bool character_ok)
Molka Becher: add of long int, long long int, long double and long double complex types.
static bool is_unit_specifier(expression exp, type_context_p context)
This function verifies the unit specifier; that is integer positive expression or character expressio...
static entity CreateAbstractStateVariable(string pn, string vn)
added to handle xxxrandxxx functions.
void register_intrinsic_type_descriptor(IntrinsicDescriptor *p)
This function is called one time (at the very beginning) to create all intrinsic functions.
static bool is_label_integer_string_specifier(string s, expression e, type_context_p context)
static void switch_specific_nint(expression exp, type_context_p context)
NINT.
static bool is_string_specifier(string s, expression e, type_context_p context)
static bool is_integer_specifier(string s, expression e, type_context_p context)
static basic typing_function_double_to_longlongint(call c, type_context_p context)
MB.
static type double_to_double_type(int n)
static basic typing_assign_substring(call c, type_context_p context)
static basic typing_function_real_to_int(call c, type_context_p context)
static type logical_to_logical_type(int n)
static bool check_io_list(list args, type_context_p ctxt, bool a_unit, bool a_fmt, bool a_rec, bool a_iostat, bool a_err, bool a_end, bool a_iolist, bool a_file, bool a_status, bool a_access, bool a_form, bool a_blank, bool a_recl, bool a_exist, bool a_opened, bool a_number, bool a_named, bool a_name, bool a_sequential, bool a_direct, bool a_formatted, bool a_unformatted, bool a_nextrec)
static type unsigned_integer_to_void_pointer_type(int n)
static basic check_format(call c, type_context_p context)
static basic typing_function_conversion_to_numeric(call c, type_context_p context, basic to_type)
static call convert_constant_from_int_to_real(call c)
static basic typing_function_dcomplex_to_dcomplex(call c, type_context_p context)
static bool is_direct_specifier(expression exp, type_context_p context)
static bool arguments_are_character(call c, type_context_p context)
static basic typing_function_longdouble_to_longdouble(call c, type_context_p context)
MB.
static void simplification_int(expression exp, type_context_p context)
static type void_to_void_type(int n __attribute__((unused)))
Can be used for C or Fortran functions.
static type longdouble_to_longinteger_type(int n)
MB.
static bool is_blank_specifier(expression exp, type_context_p context)
static entity MakeIntrinsic(string name, int arity, type(*intrinsic_type)(int))
This function creates an entity that represents an intrinsic function.
static bool arguments_are_longlonginteger(call c, hash_table types)
MB.
static type character_to_integer_type(int n)
static type overloaded_to_complex_type(int n)
static bool is_label_statement(expression exp)
entity FindOrMakeDefaultIntrinsic(string name, int arity)
Create a default intrinsic.
type void_to_integer_type(int n)
static void switch_specific_cos(expression exp, type_context_p context)
COS.
static type longlonginteger_to_longlonginteger_type(int n)
MB.
static basic typing_function_char_to_int(call c, type_context_p context)
type longlonginteger_to_overloaded_type(int n)
MB.
static void switch_specific_sign(expression exp, type_context_p context)
SIGN.
static void typing_arguments(call c, type_context_p context, basic b)
static basic typing_function_conversion_to_double(call c, type_context_p context)
static type overloaded_to_logical_type(int n)
type t = type_undefined; functional ft = functional_undefined;
entity FindOrMakeIntrinsic(string name, int arity, type(*intrinsic_type)(int))
This function creates an entity that represents an intrinsic function, if the entity does not already...
static type double_to_longinteger_type(int n)
MB.
static basic typing_relational_operator(call c, type_context_p context)
entity MakeIoFileArray(entity f)
This array is pointed by FILE * pointers returned or used by fopen, fclose,...
static bool is_name_specifier(expression exp, type_context_p context)
static void simplification_double(expression exp, type_context_p context)
static type overloaded_to_integer_type(int n)
static bool is_constant(expression exp)
Verify if an expression is a constant: YES : return true; otherwise, return FALSE.
static call convert_constant_from_double_to_int(call c)
DOUBLE -> INT e.g: INT(-5.9D2) => -590.
static basic check_open(call c, type_context_p context)
expression insert_cast(basic cast, basic from, expression exp, type_context_p)
Function in type_checker.c.
bool arguments_are_compatible(call c, hash_table types)
static void switch_specific_cosh(expression exp, type_context_p context)
COSH.
static bool arguments_are_double(call c, hash_table types)
void type_loop_range(basic, range, type_context_p)
static bool is_status_specifier(expression exp, type_context_p context)
static basic typing_function_longdcomplex_to_longdcomplex(call c, type_context_p context)
B: added for long double complex type.
bool bootstrap(string workspace)
static bool arguments_are_real(call c, hash_table types)
static basic typing_function_real_to_longlongint(call c, type_context_p context)
MB.
static type real_to_longinteger_type(int n)
MB.
static basic typing_function_complex_to_complex(call c, type_context_p context)
static bool arguments_are_logical(call c, type_context_p context)
static type real_to_double_type(int n)
static basic statement_without_argument(call c, type_context_p context)
static void CreateTimeSeed()
static call convert_constant_from_int_to_complex(call c)
INT -> COMPLEX e.g: CMPLX(-5) => (-5.0, 0.0)
static bool arguments_are_dcomplex(call c, hash_table types)
static type longdoublecomplex_to_longdouble_type(int n)
MB.
static void switch_specific_sin(expression exp, type_context_p context)
SIN.
static basic typing_concat_operator(call c, type_context_p context)
value MakeValueLitteral()
static bool is_basic_longdouble_p(basic b)
MB.
static bool is_label_specifier(string s, expression e, type_context_p context)
static call convert_constant_from_real_to_int(call c)
REAL -> INT e.g: INT(-5.9E2) => -590.
static type complex_to_complex_type(int n)
static void CreateLogicalUnits()
static bool is_varibale_array_element_specifier(string s, expression e, basic b, type_context_p context)
static basic typing_function_int_to_char(call c, type_context_p context)
static type overloaded_to_longdouble_type(int n)
MB.
static void switch_specific_tanh(expression exp, type_context_p context)
TANH.
static void switch_specific_atan2(expression exp, type_context_p context)
ATAN2.
static type character_to_character_type(int n)
static basic typing_function_IntegerRealDoubleComplex_to_IntegerRealDoubleReal(call c, type_context_p context)
static bool is_basic_double_p(basic b)
static call convert_constant_from_real_to_complex(call c)
REAL -> COMPLEX e.g: CMPLX(-5.9E5) => (-5.9E5, 0.0)
static void switch_specific_abs(expression exp, type_context_p context)
ABS.
static basic typing_function_conversion_to_integer(call c, type_context_p context)
static bool arguments_are_RD(call c, type_context_p context)
static type integer_to_integer_type(int n)
Why do we make these functions static and keep them here instead of populating ri-util/type....
call convert_constant(call c, basic to_basic)
static bool is_basic_dcomplex_p(basic b)
static void switch_specific_cmplx(expression exp, type_context_p context)
static type doublecomplex_to_double_type(int n)
static basic typing_function_double_to_longint(call c, type_context_p context)
MB.
expression cast_constant(expression exp_constant, basic to_basic, type_context_p context)
static basic typing_function_conversion_to_dcomplex(call c, type_context_p context)
static void switch_specific_exp(expression exp, type_context_p context)
EXP.
static void switch_specific_acos(expression exp, type_context_p context)
ACOS.
static bool is_constant_of_basic(expression exp, basic b)
Verify if an expression is a constant of basic b: YES : return true; otherwise, return FALSE.
parameter MakeVoidParameter()
static bool is_unformated_specifier(expression exp, type_context_p context)
type void_to_overloaded_type(int)
entity make_constant_entity(string name, tag bt, size_t size)
For historical reason, call the Fortran version.
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
void reset_current_module_entity(void)
Reset the current module entity.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
bool gen_true2(__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
#define ENDP(l)
Test if a list is empty.
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
#define CAR(pcons)
Get the value of the first element of a list.
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
#define CDR(pcons)
Get the list less its first element.
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
gen_array_t db_get_module_list(void)
Get an array of all the modules (functions, procedures and compilation units) of a workspace.
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
void add_one_line_of_comment(statement, string,...)
hash_table hash_table_make(hash_key_type key_type, size_t size)
void * hash_get(const hash_table htp, const void *key)
this function retrieves in the hash table pointed to by htp the couple whose key is equal to key.
void hash_put(hash_table htp, const void *key, const void *val)
This functions stores a couple (key,val) in the hash table pointed to by htp.
bool hash_defined_p(const hash_table htp, const void *key)
true if key has e value in htp.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define DYNAMIC_AREA_LOCAL_NAME
#define LIST_DIRECTED_FORMAT_NAME
#define TOP_LEVEL_MODULE_NAME
Module containing the global variables in Fortran and C.
#define STATIC_AREA_LOCAL_NAME
#define MODULE_SEP_STRING
string concatenate(const char *,...)
Return the concatenation of the given strings.
#define hash_table_undefined
Value of an undefined hash_table.
#define same_string_p(s1, s2)
bool set_belong_p(const set, const void *)
set set_make(set_type)
Create an empty set of any type but hash_private.
set set_add_element(set, const set, const void *)
void * stack_head(const stack)
returns the item on top of stack s
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
string basic_to_string(basic)
static const char * prefix
#define UNBOUNDED_DIMENSION_NAME
#define GETS_FUNCTION_NAME
#define ERFCL_OPERATOR_NAME
#define ERFC_OPERATOR_NAME
#define BITWISE_OR_OPERATOR_NAME
#define FREAD_FUNCTION_NAME
#define ALLOCA_FUNCTION_NAME
#define WCSFTIME_FUNCTION_NAME
#define NINT_CONVERSION_NAME
#define ATAN2_OPERATOR_NAME
#define SGCONVERT_OPERATOR_NAME
#define FWSCANF_FUNCTION_NAME
#define LDEXPL_OPERATOR_NAME
#define QECONVERT_OPERATOR_NAME
#define CREALF_OPERATOR_NAME
#define FESETEXCEPTFLAG_FUNCTION_NAME
#define VFPRINTF_FUNCTION_NAME
#define EXPM1L_OPERATOR_NAME
#define C_TANH_OPERATOR_NAME
#define CTANHF_OPERATOR_NAME
#define LABS_FUNCTION_NAME
#define FUNC_TO_DECIMAL_OPERATOR_NAME
#define C_WRITE_FUNCTION_NAME
#define DREAL_GENERIC_CONVERSION_NAME
#define SRAND_FUNCTION_NAME
#define FGETWC_FUNCTION_NAME
#define CASINL_OPERATOR_NAME
#define MAX_OPERATOR_NAME
#define POWER_OPERATOR_NAME
#define ATOI_FUNCTION_NAME
#define LLE_OPERATOR_NAME
#define DECIMAL_TO_SINGLE_OPERATOR_NAME
#define _TOLOWER_OPERATOR_NAME
#define ATANL_OPERATOR_NAME
#define CABS_OPERATOR_NAME
#define REALLOC_FUNCTION_NAME
#define LOGB_OPERATOR_NAME
#define WCSRCHR_FUNCTION_NAME
#define CPROJ_OPERATOR_NAME
#define WCSTOMBS_FUNCTION_NAME
#define FGETC_FUNCTION_NAME
#define GETLOGIN_FUNCTION_NAME
#define LOG1P_OPERATOR_NAME
#define STRLEN_FUNCTION_NAME
#define TOWUPPER_OPERATOR_NAME
#define POST_DECREMENT_OPERATOR_NAME
#define MBSINIT_FUNCTION_NAME
#define CPU_TIME_FUNCTION_NAME
#define DTIME_FUNCTION_NAME
#define NEXTAFTERF_OPERATOR_NAME
#define STAT_FUNCTION_NAME
#define MEMSET_FUNCTION_NAME
#define CEXP_OPERATOR_NAME
#define CPOWL_OPERATOR_NAME
#define RECV_FUNCTION_NAME
#define FDATASYNC_FUNCTION_NAME
#define IDNINT_CONVERSION_NAME
#define FWRITE_FUNCTION_NAME
#define SWPRINTF_FUNCTION_NAME
#define MBTOWC_FUNCTION_NAME
#define MEMALIGN_FUNCTION_NAME
#define FLOAT_GENERIC_CONVERSION_NAME
#define ISOC99_VFSCANF_FUNCTION_NAME
#define TTYNAME_FUNCTION_NAME
#define RAND_GEN_EFFECTS_NAME
variable name for random unit
#define TOLOWER_OPERATOR_NAME
#define BITWISE_XOR_OPERATOR_NAME
#define STRSPN_FUNCTION_NAME
#define FGETPOS_FUNCTION_NAME
#define C_LESS_OR_EQUAL_OPERATOR_NAME
#define REPEAT_VALUE_NAME
#define NANL_OPERATOR_NAME
#define SEED48_FUNCTION_NAME
#define TANH_OPERATOR_NAME
#define REMAINDERF_OPERATOR_NAME
#define CREAT64_FUNCTION_NAME
#define IMAXDIV_FUNCTION_NAME
#define FMINF_OPERATOR_NAME
#define STRCMP_FUNCTION_NAME
#define CACOSH_OPERATOR_NAME
#define NEARBYINTF_OPERATOR_NAME
#define VALLOC_FUNCTION_NAME
#define SETSTATE_FUNCTION_NAME
#define RAND_EFFECTS_PACKAGE_NAME
package name for random routines
#define COS_OPERATOR_NAME
#define __FILBUF_FUNCTION_NAME
#define C_EXP_OPERATOR_NAME
#define CDABS_OPERATOR_NAME
#define DSIGN_OPERATOR_NAME
#define SCANF_FUNCTION_NAME
#define TIME_EFFECTS_PACKAGE_NAME
package name for time routines
#define COPYSIGNF_OPERATOR_NAME
#define WCSRTOMBS_FUNCTION_NAME
#define ISWALNUM_OPERATOR_NAME
include <wctype.h>
#define MRAND48_FUNCTION_NAME
#define FSYNC_FUNCTION_NAME
fcntl is declared with fcntl.h
#define FTELLO64_FUNCTION_NAME
#define DOUBLE_MODULO_OPERATOR_NAME
#define READ_FUNCTION_NAME
#define ISLOWER_OPERATOR_NAME
#define STRNCPY_FUNCTION_NAME
#define C_ACOSH_OPERATOR_NAME
#define CTANHL_OPERATOR_NAME
#define FDIML_OPERATOR_NAME
#define WARNX_FUNCTION_NAME
#define C_AND_OPERATOR_NAME
#define GREATER_THAN_OPERATOR_NAME
#define CTANF_OPERATOR_NAME
#define ENDFILE_FUNCTION_NAME
#define DIV_FUNCTION_NAME
#define VSWSCANF_FUNCTION_NAME
#define FREOPEN64_FUNCTION_NAME
#define TOWLOWER_OPERATOR_NAME
#define C_GREATER_OR_EQUAL_OPERATOR_NAME
#define SIGN_OPERATOR_NAME
#define ATANF_OPERATOR_NAME
#define ISWXDIGIT_OPERATOR_NAME
#define DMIN1_OPERATOR_NAME
#define C_LOG10_OPERATOR_NAME
#define FDIMF_OPERATOR_NAME
#define LOGF_OPERATOR_NAME
#define FPUTWS_FUNCTION_NAME
#define ATAN2F_OPERATOR_NAME
#define CACOS_OPERATOR_NAME
include <complex.h>
#define STRSTR_FUNCTION_NAME
#define BITWISE_OR_UPDATE_OPERATOR_NAME
#define ABS_OPERATOR_NAME
#define DECIMAL_TO_QUADRUPLE_OPERATOR_NAME
#define TOWCTRANS_OPERATOR_NAME
#define C_REWIND_FUNCTION_NAME
#define GCC_CIMAG_OPERATOR_NAME
#define LLROUNDF_OPERATOR_NAME
#define NEXTTOWARDF_OPERATOR_NAME
#define DBLE_GENERIC_CONVERSION_NAME
#define WCRTOMB_FUNCTION_NAME
#define SYSTEM_FUNCTION_NAME
#define FEGETROUND_FUNCTION_NAME
#define IO_EFFECTS_PACKAGE_NAME
Implicit variables to handle IO effetcs.
#define SUBSTRING_FUNCTION_NAME
#define MBRLEN_FUNCTION_NAME
#define COSHL_OPERATOR_NAME
#define GETC_FUNCTION_NAME
#define ISOC99_FSCANF_FUNCTION_NAME
#define DACOS_OPERATOR_NAME
#define ISHFT_OPERATOR_NAME
Bit manipulation functions.
#define TOASCII_OPERATOR_NAME
#define MALLOC_FUNCTION_NAME
#define ASSERT_FUNCTION_NAME
Here are C intrinsics arranged in the order of the standard ISO/IEC 9899:TC2.
#define LLROUND_OPERATOR_NAME
#define DIRECTIO_FUNCTION_NAME
#define PIPS_IO_BARRIER_OPERATOR_NAME
#define CLEARERR_FUNCTION_NAME
#define TIME_FUNCTION_NAME
include<time.h>
#define CSINL_OPERATOR_NAME
#define COSH_OPERATOR_NAME
#define ISUPPER_OPERATOR_NAME
#define ISALNUM_OPERATOR_NAME
include <ctype.h>
#define VERR_FUNCTION_NAME
#define BUFFERIN_FUNCTION_NAME
#define EOLE_FMA_OPERATOR_NAME
These operators are used within the optimize transformation in order to manipulate operators such as ...
#define WMEMCHR_FUNCTION_NAME
#define WCSTOULL_FUNCTION_NAME
#define IEOR_OPERATOR_NAME
#define LRAND48_FUNCTION_NAME
#define LLRINT_OPERATOR_NAME
#define ACOSHL_OPERATOR_NAME
#define ISPUNCT_OPERATOR_NAME
#define STRERROR_R_FUNCTION_NAME
#define NEXTTOWARDL_OPERATOR_NAME
#define ERR_FUNCTION_NAME
F2008.
#define C_GREATER_THAN_OPERATOR_NAME
#define CPOW_OPERATOR_NAME
#define DSQRT_OPERATOR_NAME
#define MPI_IBSEND_FUNCTION_NAME
#define C_CCOS_OPERATOR_NAME
#define SSCANF_FUNCTION_NAME
#define SINF_OPERATOR_NAME
#define C_MODULO_OPERATOR_NAME
#define MPI_RSEND_FUNCTION_NAME
#define ISDIGIT_OPERATOR_NAME
#define A614_FUNCTION_NAME
#define COPYSIGNL_OPERATOR_NAME
#define CACOSHL_OPERATOR_NAME
#define STRCPY_FUNCTION_NAME
#define MINUS_OPERATOR_NAME
#define IDIM_OPERATOR_NAME
#define CSINHF_OPERATOR_NAME
#define INITSTATE_FUNCTION_NAME
#define C_COSH_OPERATOR_NAME
#define DUP2_FUNCTION_NAME
#define GETWC_FUNCTION_NAME
#define _TOUPPER_OPERATOR_NAME
#define EXP2L_OPERATOR_NAME
#define LGAMMAF_OPERATOR_NAME
#define ATOF_FUNCTION_NAME
random functions of <stdlib.h>
#define ETIME_FUNCTION_NAME
#define ILOGBF_OPERATOR_NAME
#define IO_EFFECTS_UNIT_SPECIFIER_LENGTH
size of the unit specifier
#define AINT_CONVERSION_NAME
#define STRTOUL_FUNCTION_NAME
#define LESS_THAN_OPERATOR_NAME
#define DCMPLX_GENERIC_CONVERSION_NAME
#define DNINT_CONVERSION_NAME
#define PUTC_FUNCTION_NAME
#define ISFINITE_OPERATOR_NAME
#define ENTITY_IMPLIED_DCMPLX_P(e)
#define CCOSH_OPERATOR_NAME
#define CLOG_OPERATOR_NAME
#define ENTITY_UNARY_MINUS_P(e)
#define VSSCANF_FUNCTION_NAME
#define DINT_CONVERSION_NAME
#define MKTEMP_FUNCTION_NAME
#define IABS_OPERATOR_NAME
#define FLOORF_OPERATOR_NAME
#define ERRX_FUNCTION_NAME
#define EQUIV_OPERATOR_NAME
#define STRTOL_FUNCTION_NAME
#define WCSTOLL_FUNCTION_NAME
#define CLOGF_OPERATOR_NAME
#define NRAND48_FUNCTION_NAME
#define SCALBLNL_OPERATOR_NAME
#define CTAN_OPERATOR_NAME
#define ASM_FUNCTION_NAME
__asm function
#define DIVIDE_UPDATE_OPERATOR_NAME
#define WSCANF_FUNCTION_NAME
#define RAISE_FUNCTION_NAME
#define CEILF_OPERATOR_NAME
#define FSEEK_FUNCTION_NAME
#define ISGREATER_OPERATOR_NAME
#define C_SQRT_OPERATOR_NAME
#define MPI_IRSEND_FUNCTION_NAME
#define USLEEP_FUNCTION_NAME
#define STRCHR_FUNCTION_NAME
#define MODF_OPERATOR_NAME
#define GETOPT_FUNCTION_NAME
#define CBRT_OPERATOR_NAME
#define C_164A_FUNCTION_NAME
#define ATOLL_FUNCTION_NAME
#define ISATTY_FUNCTION_NAME
#define FGETWS_FUNCTION_NAME
#define COMMA_OPERATOR_NAME
#define MODULO_UPDATE_OPERATOR_NAME
#define POINT_TO_OPERATOR_NAME
#define CSQRTF_OPERATOR_NAME
#define _IO_GETC_FUNCTION_NAME
#define ISWLOWER_OPERATOR_NAME
#define PUTCHAR_FUNCTION_NAME
#define PLUS_OPERATOR_NAME
#define LOG10_OPERATOR_NAME
#define VPRINTF_FUNCTION_NAME
#define LENGTH_OPERATOR_NAME
#define CATAN_OPERATOR_NAME
#define TIME_EFFECTS_BUFFER_NAME
#define LOG2F_OPERATOR_NAME
#define SWAB_FUNCTION_NAME
#define SIGNAL_OPERATOR_NAME
signal.h
#define STRTOK_FUNCTION_NAME
#define GCC_CREAL_OPERATOR_NAME
#define DCOSH_OPERATOR_NAME
#define DIM_OPERATOR_NAME
#define LOCALTIME_FUNCTION_NAME
#define IOCTL_FUNCTION_NAME
#define EXPF_OPERATOR_NAME
#define WCSCAT_FUNCTION_NAME
#define LRINTF_OPERATOR_NAME
#define LLRINTL_OPERATOR_NAME
#define _EXIT_FUNCTION_NAME
#define SPRINTF_FUNCTION_NAME
#define TANL_OPERATOR_NAME
#define DIMAG_CONVERSION_NAME
#define MVBITS_OPERATOR_NAME
#define FMAL_OPERATOR_NAME
#define LDEXP_OPERATOR_NAME
#define SIN_OPERATOR_NAME
#define RAND_FUNCTION_NAME
#define SINGLE_TO_DECIMAL_OPERATOR_NAME
#define RANDOM_FUNCTION_NAME
#define C_COS_OPERATOR_NAME
#define FMAX_OPERATOR_NAME
#define TMPFILE64_FUNCTION_NAME
#define EXPL_OPERATOR_NAME
#define NEARBYINTL_OPERATOR_NAME
#define EQUAL_OPERATOR_NAME
#define CEXPF_OPERATOR_NAME
#define FTELLO_FUNCTION_NAME
#define WMEMMOVE_FUNCTION_NAME
#define STRRCHR_FUNCTION_NAME
#define FPUTWC_FUNCTION_NAME
#define STRNCAT_FUNCTION_NAME
#define QGCONVERT_OPERATOR_NAME
#define QGCVT_FUNCTION_NAME
#define FETESTEXCEPT_FUNCTION_NAME
#define FMODL_OPERATOR_NAME
#define REMAINDER_OPERATOR_NAME
#define WARN_FUNCTION_NAME
#define DEFAULT_INTEGER_TYPE_SIZE
#define MEMCMP_FUNCTION_NAME
#define WCSCSPN_FUNCTION_NAME
#define FMIN_OPERATOR_NAME
#define C_CSQRT_OPERATOR_NAME
#define ISWUPPER_OPERATOR_NAME
#define LROUNDL_OPERATOR_NAME
#define IO_EFFECTS_ARRAY_NAME
array of Logical UNits; it is more or less handled as the current file pointer; in C,...
#define MBSRTOWCS_FUNCTION_NAME
#define ATANHL_OPERATOR_NAME
#define FDOPEN_FUNCTION_NAME
#define EXPM1_OPERATOR_NAME
#define CREALL_OPERATOR_NAME
#define WCSCPY_FUNCTION_NAME
#define WCSTOF_FUNCTION_NAME
#define CPROJL_OPERATOR_NAME
#define CLOGL_OPERATOR_NAME
#define IBITS_OPERATOR_NAME
#define DLOG10_OPERATOR_NAME
#define DCONJG_OPERATOR_NAME
#define FREOPEN_FUNCTION_NAME
#define CCOSHF_OPERATOR_NAME
#define QSORT_FUNCTION_NAME
#define CALLOC_FUNCTION_NAME
#define ILOGBL_OPERATOR_NAME
#define CSINHL_OPERATOR_NAME
#define MAX0_OPERATOR_NAME
#define make_entity(n, t, s, i)
#define AMIN0_OPERATOR_NAME
#define SETLOCALE_FUNCTION_NAME
include <locale.h>
#define PSELECT_FUNCTION_NAME
#define GETPW_FUNCTION_NAME
#define ECONVERT_OPERATOR_NAME
#define CLOCK_FUNCTION_NAME
time.h
#define POWF_OPERATOR_NAME
#define SCALBLN_OPERATOR_NAME
#define FOPEN_FUNCTION_NAME
#define RETURN_FUNCTION_NAME
#define C_ASINH_OPERATOR_NAME
#define MEMMOVE_EFFECTS_PACKAGE_NAME
package name for memmove routines
#define BACKSPACE_FUNCTION_NAME
#define ISOC99_VSSCANF_FUNCTION_NAME
#define CARGL_OPERATOR_NAME
#define DEREFERENCING_OPERATOR_NAME
#define CEILL_OPERATOR_NAME
#define CASE_FUNCTION_NAME
#define MIN0_OPERATOR_NAME
#define LRINT_OPERATOR_NAME
#define CSINF_OPERATOR_NAME
#define VFWPRINTF_FUNCTION_NAME
#define PIPS_C_MAX_OPERATOR_NAME
#define JRAND48_FUNCTION_NAME
#define GETCHAR_FUNCTION_NAME
#define C_CABS_OPERATOR_NAME
#define __ERRNO_LOCATION_OPERATOR_NAME
bits/errno.h
#define UNLINK_FUNCTION_NAME
#define ASINL_OPERATOR_NAME
#define CREAT_FUNCTION_NAME
#define HYPOTL_OPERATOR_NAME
#define LOG2L_OPERATOR_NAME
#define STRCSPN_FUNCTION_NAME
#define MAX1_OPERATOR_NAME
#define WPRINTF_FUNCTION_NAME
#define FIELD_OPERATOR_NAME
#define SFCONVERT_OPERATOR_NAME
#define ROUNDF_OPERATOR_NAME
#define HYPOT_OPERATOR_NAME
#define WMEMCMP_FUNCTION_NAME
#define CARGF_OPERATOR_NAME
#define NON_EQUIV_OPERATOR_NAME
#define CEIL_OPERATOR_NAME
#define C_CLOG_OPERATOR_NAME
#define LGAMMAL_OPERATOR_NAME
#define ISOC99_SSCANF_FUNCTION_NAME
#define WCTRANS_OPERATOR_NAME
#define MATHERR_OPERATOR_NAME
#define CASINH_OPERATOR_NAME
#define FABSL_OPERATOR_NAME
#define C_NON_EQUAL_OPERATOR_NAME
#define ISWPRINT_OPERATOR_NAME
#define MODFF_OPERATOR_NAME
#define LEFT_SHIFT_UPDATE_OPERATOR_NAME
#define LDEXPF_OPERATOR_NAME
#define SCALB_OPERATOR_NAME
#define ATOQ_FUNCTION_NAME
#define BTOWC_FUNCTION_NAME
#define OPEN64_FUNCTION_NAME
#define IMS_OPERATOR_NAME
#define WCTOB_FUNCTION_NAME
#define FMINL_OPERATOR_NAME
#define STRTOLD_FUNCTION_NAME
#define MEMCPY_FUNCTION_NAME
include <string.h>
#define DECIMAL_TO_DOUBLE_OPERATOR_NAME
#define REAL_MODULO_OPERATOR_NAME
#define SETVBUF_FUNCTION_NAME
#define ISBLANK_OPERATOR_NAME
#define QFCVT_FUNCTION_NAME
#define STRXFRM_FUNCTION_NAME
#define DATA_LIST_FUNCTION_NAME
#define LLABS_FUNCTION_NAME
#define CCOSHL_OPERATOR_NAME
#define ILOGB_OPERATOR_NAME
#define GETW_FUNCTION_NAME
#define LOG10L_OPERATOR_NAME
#define NEARBYINT_OPERATOR_NAME
#define CONJG_OPERATOR_NAME
#define ASINHL_OPERATOR_NAME
#define ISOC99_SCANF_FUNCTION_NAME
#define C_TAN_OPERATOR_NAME
#define GCVT_FUNCTION_NAME
#define WCSTOUL_FUNCTION_NAME
#define LOGBL_OPERATOR_NAME
#define C_SIN_OPERATOR_NAME
#define AMAX0_OPERATOR_NAME
#define VFSCANF_FUNCTION_NAME
#define CCOSL_OPERATOR_NAME
#define GETOPT_LONG_ONLY_FUNCTION_NAME
#define FFLUSH_FUNCTION_NAME
#define STRDUP_FUNCTION_NAME
#define ROUNDL_OPERATOR_NAME
#define GETWCHAR_FUNCTION_NAME
#define ISWBLANK_OPERATOR_NAME
#define FMAXF_OPERATOR_NAME
#define REWIND_FUNCTION_NAME
#define LROUND_OPERATOR_NAME
#define LLROUNDL_OPERATOR_NAME
#define DMAX1_OPERATOR_NAME
#define RENAME_FUNCTION_NAME
#define IBSET_OPERATOR_NAME
#define CDSQRT_OPERATOR_NAME
#define FWPRINTF_FUNCTION_NAME
include <wchar.h>
#define IFIX_GENERIC_CONVERSION_NAME
#define FREE_FUNCTION_NAME
#define ACOS_OPERATOR_NAME
#define EXPM1F_OPERATOR_NAME
#define FPRINTF_FUNCTION_NAME
#define WCSNCPY_FUNCTION_NAME
#define MULTIPLY_UPDATE_OPERATOR_NAME
#define GETSUBOPT_FUNCTION_NAME
#define ACOSL_OPERATOR_NAME
#define C_READ_FUNCTION_NAME
#define GETTIMEOFDAY_FUNCTION_NAME
#define C_ACOS_OPERATOR_NAME
#define OPEN_FUNCTION_NAME
#define END_FUNCTION_NAME
#define CCOSF_OPERATOR_NAME
#define ISWPUNCT_OPERATOR_NAME
#define BSEARCH_FUNCTION_NAME
#define WMEMSET_FUNCTION_NAME
#define MALLOC_EFFECTS_NAME
variable name for heap effects
#define ISHFTC_OPERATOR_NAME
#define TMPFILE_FUNCTION_NAME
#define C_ABS_FUNCTION_NAME
#define ISNAN_OPERATOR_NAME
#define MPI_SEND_FUNCTION_NAME
#define FCVT_FUNCTION_NAME
#define GETOPT_LONG_FUNCTION_NAME
#define ABORT_FUNCTION_NAME
#define CREAL_OPERATOR_NAME
#define CDCOS_OPERATOR_NAME
#define INVERSE_OPERATOR_NAME
#define ERFF_OPERATOR_NAME
#define LEFT_SHIFT_OPERATOR_NAME
#define CDLOG_OPERATOR_NAME
#define ISXDIGIT_OPERATOR_NAME
#define CONDITIONAL_OPERATOR_NAME
#define BREAK_FUNCTION_NAME
#define CPOWF_OPERATOR_NAME
#define SCALBLNF_OPERATOR_NAME
#define TTYSLOT_FUNCTION_NAME
#define VFWSCANF_FUNCTION_NAME
#define ALOG10_OPERATOR_NAME
#define FMODF_OPERATOR_NAME
#define EXTENDED_TO_DECIMAL_OPERATOR_NAME
#define MPI_ISEND_FUNCTION_NAME
#define LLT_OPERATOR_NAME
#define VSPRINTF_FUNCTION_NAME
#define SETBUFFER_FUNCTION_NAME
#define C_ASIN_OPERATOR_NAME
#define CLOCK_GETTIME_FUNCTION_NAME
#define C_RETURN_FUNCTION_NAME
#define FSEEKO_FUNCTION_NAME
#define GETPASS_FUNCTION_NAME
#define BUFFEROUT_FUNCTION_NAME
#define GRANTPT_FUNCTION_NAME
#define WCSNCAT_FUNCTION_NAME
#define CCOS_OPERATOR_NAME
#define ROUND_OPERATOR_NAME
#define C_LOC_FUNCTION_NAME
F2003.
#define ISGRAPH_OPERATOR_NAME
#define MPI_INIT_FUNCTION_NAME
PI calls.
#define LCONG48_FUNCTION_NAME
#define DPROD_OPERATOR_NAME
#define GETENV_FUNCTION_NAME
#define CUSERID_FUNCTION_NAME
#define CDSIN_OPERATOR_NAME
#define SCALBNF_OPERATOR_NAME
#define LLRINTF_OPERATOR_NAME
#define SINHL_OPERATOR_NAME
#define AND_OPERATOR_NAME
FI: intrinsics are defined at a third place after bootstrap and effects! I guess the name should be d...
#define ISNORMAL_OPERATOR_NAME
#define MINUS_UPDATE_OPERATOR_NAME
#define MPI_RECV_FUNCTION_NAME
#define ANINT_CONVERSION_NAME
#define REMOVE_FUNCTION_NAME
#define CPROJF_OPERATOR_NAME
#define TRUNCL_OPERATOR_NAME
#define UNGETWC_FUNCTION_NAME
#define SIGNBIT_OPERATOR_NAME
#define EOLE_FMS_OPERATOR_NAME
#define C_NOT_OPERATOR_NAME
#define MKSTEMP64_FUNCTION_NAME
#define CATANHL_OPERATOR_NAME
#define CABSL_OPERATOR_NAME
#define INT_TO_CHAR_CONVERSION_NAME
#define ISWALPHA_OPERATOR_NAME
#define FOPEN64_FUNCTION_NAME
#define ASSERT_FAIL_FUNCTION_NAME
#define OMP_FOR_FUNCTION_NAME
#define GCONVERT_OPERATOR_NAME
#define VWSCANF_FUNCTION_NAME
#define POW_OPERATOR_NAME
#define LGAMMA_OPERATOR_NAME
#define CONTINUE_FUNCTION_NAME
#define ACOSF_OPERATOR_NAME
#define FMAF_OPERATOR_NAME
#define ALLOCATE_FUNCTION_NAME
F95.
#define ISLESS_OPERATOR_NAME
#define FSTAT_FUNCTION_NAME
#define WCSTOD_FUNCTION_NAME
#define __FILSBUF_FUNCTION_NAME
#define STRTOD_FUNCTION_NAME
#define WCSXFRM_FUNCTION_NAME
#define RINT_OPERATOR_NAME
#define LINK_FUNCTION_NAME
#define ISOC99_VSCANF_FUNCTION_NAME
#define POSIX_MEMALIGN_FUNCTION_NAME
#define SNPRINTF_FUNCTION_NAME
#define WCSCMP_FUNCTION_NAME
#define COPYSIGN_OPERATOR_NAME
#define CSINH_OPERATOR_NAME
#define NEXTAFTERL_OPERATOR_NAME
#define COSHF_OPERATOR_NAME
#define VWPRINTF_FUNCTION_NAME
#define COSL_OPERATOR_NAME
#define MEMMOVE_EFFECTS_NAME
variable name for memmove unit
#define ADDRESS_OF_OPERATOR_NAME
#define CMPLX_GENERIC_CONVERSION_NAME
#define FABSF_OPERATOR_NAME
#define IO_EOF_ARRAY_NAME
array of end of file codes
#define DOUBLE_TO_DECIMAL_OPERATOR_NAME
#define PIPS_MEMORY_BARRIER_OPERATOR_NAME
special pips intrinsics with global effects
#define ATOL_FUNCTION_NAME
#define C_ATAN2_OPERATOR_NAME
#define MBRTOWC_FUNCTION_NAME
#define IO_EFFECTS_IO_FILE_NAME
Array of struct io_files pointed to by pointers returned by fopen and used by fclose,...
#define PRE_DECREMENT_OPERATOR_NAME
#define MKSTEMP_FUNCTION_NAME
#define CHAR_TO_INT_CONVERSION_NAME
#define FCNTL_FUNCTION_NAME
include <fcntl.h>
#define SQRT_OPERATOR_NAME
#define MPI_COMM_RANK_FUNCTION_NAME
#define ATAN_OPERATOR_NAME
#define ATANHF_OPERATOR_NAME
#define PUTWCHAR_FUNCTION_NAME
#define ERFL_OPERATOR_NAME
#define ISIGN_OPERATOR_NAME
#define C_CEXP_OPERATOR_NAME
#define STRTOULL_FUNCTION_NAME
#define TGAMMA_OPERATOR_NAME
#define OMP_OMP_FUNCTION_NAME
#define UNGETC_FUNCTION_NAME
#define STRPBRK_FUNCTION_NAME
#define SRAND48_FUNCTION_NAME
#define GETCWD_FUNCTION_NAME
#define OMP_PARALLEL_FUNCTION_NAME
#define QUADRUPLE_TO_DECIMAL_OPERATOR_NAME
#define INT_GENERIC_CONVERSION_NAME
generic conversion names.
#define C_ATAN_OPERATOR_NAME
#define MPI_COMM_SIZE_FUNCTION_NAME
#define EXP2F_OPERATOR_NAME
#define SELECT_FUNCTION_NAME
#define MALLOC_EFFECTS_PACKAGE_NAME
package name for malloc routines (could be libc package)
#define C_CLOSE_FUNCTION_NAME
#define GETEXECNAME_FUNCTION_NAME
#define GAMMA_OPERATOR_NAME
#define LGE_OPERATOR_NAME
#define IMPLIED_DCOMPLEX_NAME
#define SWSCANF_FUNCTION_NAME
#define NANOSLEEP_FUNCTION_NAME
#define DIVIDE_OPERATOR_NAME
#define MEMCHR_FUNCTION_NAME
#define DRAND48_FUNCTION_NAME
#define BIT_SIZE_OPERATOR_NAME
#define TGAMMAF_OPERATOR_NAME
#define WRITE_FUNCTION_NAME
#define SETLINEBUF_FUNCTION_NAME
#define NAN_OPERATOR_NAME
#define DABS_OPERATOR_NAME
#define REMAINDERL_OPERATOR_NAME
#define SINL_OPERATOR_NAME
#define FECLEAREXCEPT_FUNCTION_NAME
include <fenv.h>
#define DIFFTIME_FUNCTION_NAME
#define CBRTL_OPERATOR_NAME
#define SETKEY_FUNCTION_NAME
#define CLOSE_FUNCTION_NAME
#define FABS_OPERATOR_NAME
#define GETPASSPHRASE_FUNCTION_NAME
#define STRCOLL_FUNCTION_NAME
#define UNARY_MINUS_OPERATOR_NAME
#define MPI_BSEND_FUNCTION_NAME
#define SEND_FUNCTION_NAME
SPIRE API.
#define AMIN1_OPERATOR_NAME
#define LROUNDF_OPERATOR_NAME
#define _IO_PUTC_FUNCTION_NAME
#define MPI_IRECV_FUNCTION_NAME
#define DCOS_OPERATOR_NAME
#define RINTF_OPERATOR_NAME
#define BITWISE_XOR_UPDATE_OPERATOR_NAME
#define FERAISEEXCEPT_FUNCTION_NAME
#define CASINHL_OPERATOR_NAME
#define C_OPEN_FUNCTION_NAME
Not found in unistd.h.
#define MPI_SSEND_FUNCTION_NAME
#define LRINTL_OPERATOR_NAME
#define ISNANL_OPERATOR_NAME
#define QFCONVERT_OPERATOR_NAME
#define STRCAT_FUNCTION_NAME
#define ISGREATEREQUAL_OPERATOR_NAME
#define CATANHF_OPERATOR_NAME
#define TEMPNAM_FUNCTION_NAME
#define CARG_OPERATOR_NAME
#define LLTOSTR_FUNCTION_NAME
#define CONCATENATION_FUNCTION_NAME
#define WCSTOLD_FUNCTION_NAME
#define EXP_OPERATOR_NAME
#define STATIC_INITIALIZATION_FUNCTION_NAME
#define ERAND48_FUNCTION_NAME
#define FMA_OPERATOR_NAME
#define WCSPBRK_FUNCTION_NAME
#define EOLE_PROD_OPERATOR_NAME
#define VSCANF_FUNCTION_NAME
#define HYPOTF_OPERATOR_NAME
#define WMEMCPY_FUNCTION_NAME
#define IBCLR_OPERATOR_NAME
#define WCSCOLL_FUNCTION_NAME
#define CTANH_OPERATOR_NAME
#define PCLOSE_FUNCTION_NAME
#define SRANDOM_FUNCTION_NAME
#define PIPS_C_MIN_OPERATOR_NAME
PIPS run-time support for C code generation.
#define LDIV_FUNCTION_NAME
#define FSEEKO64_FUNCTION_NAME
#define ATAN2L_OPERATOR_NAME
#define C_LOG_OPERATOR_NAME
#define basic_compatible_p(b1, b2)
#define LOGBF_OPERATOR_NAME
#define IMA_OPERATOR_NAME
Integer Multiply Add and Sub, FC 27/10/2005 for FI.
#define ERF_OPERATOR_NAME
#define UNARY_PLUS_OPERATOR_NAME
#define ASINHF_OPERATOR_NAME
#define NANF_OPERATOR_NAME
#define LOG_OPERATOR_NAME
#define FDIM_OPERATOR_NAME
#define RIGHT_SHIFT_UPDATE_OPERATOR_NAME
#define POPEN_FUNCTION_NAME
#define ATEXIT_FUNCTION_NAME
#define LOGL_OPERATOR_NAME
#define SECOND_FUNCTION_NAME
#define DSIN_OPERATOR_NAME
#define NEXTAFTER_OPERATOR_NAME
#define RINTL_OPERATOR_NAME
#define FGETS_FUNCTION_NAME
#define ISSPACE_OPERATOR_NAME
#define FEOF_FUNCTION_NAME
#define ISLESSGREATER_OPERATOR_NAME
#define FESETROUND_FUNCTION_NAME
#define VERRX_FUNCTION_NAME
#define C_ATANH_OPERATOR_NAME
#define CSQRT_OPERATOR_NAME
#define ISASCII_OPERATOR_NAME
#define IOR_OPERATOR_NAME
#define C_SINH_OPERATOR_NAME
#define CSQRTL_OPERATOR_NAME
#define ASINF_OPERATOR_NAME
#define C_LESS_THAN_OPERATOR_NAME
#define ACOSHF_OPERATOR_NAME
#define BITWISE_NOT_OPERATOR_NAME
#define __H_ERRNO_LOCATION_OPERATOR_NAME
netdb.h
#define CATANL_OPERATOR_NAME
#define IO_ERROR_ARRAY_NAME
array of error codes for LUNs
#define CACOSHF_OPERATOR_NAME
#define FLOORL_OPERATOR_NAME
#define GREATER_OR_EQUAL_OPERATOR_NAME
#define TAN_OPERATOR_NAME
#define FILE_TO_DECIMAL_OPERATOR_NAME
#define PUTW_FUNCTION_NAME
#define VWARNX_FUNCTION_NAME
#define ERFCF_OPERATOR_NAME
#define FILENO_FUNCTION_NAME
#define STOP_FUNCTION_NAME
#define DECIMAL_TO_EXTENDED_OPERATOR_NAME
#define PRE_INCREMENT_OPERATOR_NAME
#define WCSTOL_FUNCTION_NAME
#define VWARN_FUNCTION_NAME
#define STRING_TO_DECIMAL_OPERATOR_NAME
#define FTELL_FUNCTION_NAME
#define CACOSL_OPERATOR_NAME
#define CIMAG_OPERATOR_NAME
#define EOLE_SUM_OPERATOR_NAME
#define REALPATH_FUNCTION_NAME
#define FPUTC_FUNCTION_NAME
#define CEXPL_OPERATOR_NAME
#define EXITHANDLE_FUNCTION_NAME
#define SETBUF_FUNCTION_NAME
#define C_CSIN_OPERATOR_NAME
#define POST_INCREMENT_OPERATOR_NAME
#define TMPNAM_FUNCTION_NAME
#define DSINH_OPERATOR_NAME
#define ENTITY_IMPLIED_CMPLX_P(e)
#define SIGFPE_OPERATOR_NAME
#define IAND_OPERATOR_NAME
#define QECVT_FUNCTION_NAME
#define ISWCNTRL_OPERATOR_NAME
#define AIMAG_CONVERSION_NAME
#define EXIT_FUNCTION_NAME
#define PLUS_UPDATE_OPERATOR_NAME
#define WCSSTR_FUNCTION_NAME
#define WCSTOK_FUNCTION_NAME
#define CONJ_OPERATOR_NAME
#define SIGNIFICAND_OPERATOR_NAME
#define LSTAT_FUNCTION_NAME
#define MPI_ISSEND_FUNCTION_NAME
#define PTSNAME_FUNCTION_NAME
#define INDEX_OPERATOR_NAME
#define ISLESSEQUAL_OPERATOR_NAME
#define ISWGRAPH_OPERATOR_NAME
#define ISNANF_OPERATOR_NAME
#define BTEST_OPERATOR_NAME
#define WCTYPE_OPERATOR_NAME
#define TRUNCF_OPERATOR_NAME
#define MBLEN_FUNCTION_NAME
#define ISWDIGIT_OPERATOR_NAME
#define PAUSE_FUNCTION_NAME
#define CDEXP_OPERATOR_NAME
#define STRTOF_FUNCTION_NAME
#define FLOOR_OPERATOR_NAME
#define SINHF_OPERATOR_NAME
#define STRTOLL_FUNCTION_NAME
#define COSF_OPERATOR_NAME
#define LOG10F_OPERATOR_NAME
#define VSNPRINTF_FUNCTION_NAME
#define FORMAT_FUNCTION_NAME
#define LLDIV_FUNCTION_NAME
#define DATAN2_OPERATOR_NAME
#define WCSLEN_FUNCTION_NAME
#define DDIM_OPERATOR_NAME
#define TANHF_OPERATOR_NAME
#define FGETPOS64_FUNCTION_NAME
#define SINH_OPERATOR_NAME
#define OMP_IF_FUNCTION_NAME
OMP related function and opertor names.
#define FPCLASSIFY_OPERATOR_NAME
include <math.h>
#define PERROR_FUNCTION_NAME
#define REAL_GENERIC_CONVERSION_NAME
#define DEFAULT_FUNCTION_NAME
#define WCTOMB_FUNCTION_NAME
#define CACOSF_OPERATOR_NAME
#define TRUNC_OPERATOR_NAME
#define CTERMID_FUNCTION_NAME
#define SQRTF_OPERATOR_NAME
#define ISINF_OPERATOR_NAME
#define STRNCMP_FUNCTION_NAME
#define ISUNORDERED_OPERATOR_NAME
#define TOUPPER_OPERATOR_NAME
#define MINUS_C_OPERATOR_NAME
#define MULTIPLY_OPERATOR_NAME
#define DEXP_OPERATOR_NAME
#define BITWISE_AND_UPDATE_OPERATOR_NAME
#define DLOG_OPERATOR_NAME
#define LESS_OR_EQUAL_OPERATOR_NAME
#define CBRTF_OPERATOR_NAME
#define C_OR_OPERATOR_NAME
#define STRERROR_FUNCTION_NAME
#define CONJL_OPERATOR_NAME
#define BITWISE_AND_OPERATOR_NAME
#define CSIN_OPERATOR_NAME
#define SNGL_GENERIC_CONVERSION_NAME
#define FMOD_OPERATOR_NAME
#define IMAXABS_FUNCTION_NAME
include <inttypes.h>
#define SCALBNL_OPERATOR_NAME
#define DTANH_OPERATOR_NAME
#define EXP2_OPERATOR_NAME
#define TIME_EFFECTS_VARIABLE_NAME
variable holding time effects
#define entity_constant_p(e)
#define UNLOCKPT_FUNCTION_NAME
#define DFLOAT_GENERIC_CONVERSION_NAME
#define SQRTL_OPERATOR_NAME
#define FERROR_FUNCTION_NAME
#define TANHL_OPERATOR_NAME
#define FWIDE_FUNCTION_NAME
#define WCSNCMP_FUNCTION_NAME
#define SYMLINK_FUNCTION_NAME
#define ULLTOSTR_FUNCTION_NAME
#define OMP_REDUCTION_FUNCTION_NAME
#define RIGHT_SHIFT_OPERATOR_NAME
#define CATANF_OPERATOR_NAME
#define CATANH_OPERATOR_NAME
#define ISCNTRL_OPERATOR_NAME
#define ASIN_OPERATOR_NAME
#define AMAX1_OPERATOR_NAME
#define CTANL_OPERATOR_NAME
#define CABSF_OPERATOR_NAME
#define CASINHF_OPERATOR_NAME
#define CONJF_OPERATOR_NAME
#define PUTENV_FUNCTION_NAME
#define DEALLOCATE_FUNCTION_NAME
#define SECONVERT_OPERATOR_NAME
#define DASIN_OPERATOR_NAME
#define TANF_OPERATOR_NAME
#define INQUIRE_FUNCTION_NAME
#define NEXTTOWARD_OPERATOR_NAME
#define PUTS_FUNCTION_NAME
#define IDINT_GENERIC_CONVERSION_NAME
#define MEMMOVE_FUNCTION_NAME
#define NOT_OPERATOR_NAME
#define POWL_OPERATOR_NAME
#define MPI_FINALIZE_FUNCTION_NAME
#define IMPLIED_COMPLEX_NAME
#define FSCANF_FUNCTION_NAME
#define FCONVERT_OPERATOR_NAME
#define WCSCHR_FUNCTION_NAME
#define LGT_OPERATOR_NAME
#define MIN1_OPERATOR_NAME
#define ISWCTYPE_OPERATOR_NAME
#define CASIN_OPERATOR_NAME
#define LOG1PF_OPERATOR_NAME
#define ASSIGN_SUBSTRING_FUNCTION_NAME
#define VSWPRINTF_FUNCTION_NAME
#define LOG1PL_OPERATOR_NAME
#define FSETPOS64_FUNCTION_NAME
#define CIMAGL_OPERATOR_NAME
#define NON_EQUAL_OPERATOR_NAME
#define DATAN_OPERATOR_NAME
#define DTAN_OPERATOR_NAME
#define C_EQUAL_OPERATOR_NAME
#define ISWSPACE_OPERATOR_NAME
#define PRINTF_FUNCTION_NAME
include<stdio.h>
#define ECVT_FUNCTION_NAME
#define CIMAGF_OPERATOR_NAME
#define ASSIGN_OPERATOR_NAME
#define ISPRINT_OPERATOR_NAME
#define MODULO_OPERATOR_NAME
#define SCALBN_OPERATOR_NAME
#define PUTWC_FUNCTION_NAME
#define PIPS_C_DIV_OPERATOR_NAME
#define FPUTS_FUNCTION_NAME
#define PLUS_C_OPERATOR_NAME
#define MPI_BARRIER_FUNCTION_NAME
#define FCLOSE_FUNCTION_NAME
#define OMP_PRIVATE_FUNCTION_NAME
#define ALOG_OPERATOR_NAME
#define FMAXL_OPERATOR_NAME
#define FREXP_OPERATOR_NAME
#define FSETPOS_FUNCTION_NAME
#define MIN_OPERATOR_NAME
#define MPI_SENDRECV_FUNCTION_NAME
#define CTYPE_B_LOC_OPERATOR_NAME
Part of the binary standard.
#define ISALPHA_OPERATOR_NAME
#define LOG2_OPERATOR_NAME
#define MBSTOWCS_FUNCTION_NAME
#define CASINF_OPERATOR_NAME
#define WCSSPN_FUNCTION_NAME
entity FindEntity(const char *package, const char *name)
Retrieve an entity from its package/module name and its local name.
const char * entity_local_name(entity e)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
entity FindOrCreateEntity(const char *package, const char *local_name)
Problem: A functional global entity may be referenced without parenthesis or CALL keyword in a functi...
char * AddPackageToName(string p, string n)
This function concatenate a package name and a local name to produce a global entity name.
bool entity_label_p(entity e)
basic entity_basic(entity e)
return the basic associated to entity e if it's a function/variable/constant basic_undefined otherwis...
void add_thread_safe_variable(entity v)
entity CreateIntrinsic(string name)
this function does not create an intrinsic function because they must all be created beforehand by th...
void add_abstract_state_variable(entity v)
bool expression_call_p(expression e)
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
bool fortran_language_module_p(entity m)
parameter MakeDoubleprecisionParameter(void)
type MakeLongLongIntegerResult(void)
MB.
type MakeDoublecomplexResult(void)
type MakeLongIntegerResult(void)
MB.
type MakeLongDoublecomplexResult(void)
MB.
parameter MakeLongDoublecomplexParameter(void)
MB.
type MakeLogicalResult(void)
parameter MakeDoublecomplexParameter(void)
type MakeComplexResult(void)
type type_to_pointer_type(type)
allocate a new type "pt" which includes directly "t".
parameter MakePointerParameter(void)
type MakeVoidPointerResult(void)
parameter MakeOverloadedParameter(void)
parameter MakeCharacterParameter(void)
bool basic_equal_p(basic, basic)
type MakeCharacterResult(void)
type MakeTypeArray(basic, cons *)
functions on types
type type_to_pointed_type(type)
returns t if t is not a pointer type, and the pointed type if t is a pointer type.
type MakeIntegerResult(void)
type MakeRealResult(void)
type MakeTypeStatement(void)
type MakeDoubleprecisionResult(void)
type make_scalar_integer_type(_int)
parameter MakeIntegerParameter(void)
type MakeQuadprecisionResult(void)
MB.
parameter MakeUnsignedIntegerParameter(void)
parameter MakeRealParameter(void)
type MakeOverloadedResult(void)
this function creates a default fortran operator result, i.e.
parameter MakeLongIntegerParameter(void)
parameter MakeLongLongIntegerParameter(void)
MB.
parameter MakeQuadprecisionParameter(void)
MB.
bool is_inferior_basic(basic, basic)
bool is_inferior_basic(basic1, basic2) return true if basic1 is less complex than basic2 ex: int is l...
parameter MakeComplexParameter(void)
#define normalized_undefined
#define syntax_reference_p(x)
#define functional_result(x)
#define basic_complex_p(x)
#define parameter_type(x)
#define syntax_reference(x)
#define QUALIFIER(x)
QUALIFIER.
#define reference_variable(x)
#define type_functional(x)
#define entity_storage(x)
#define range_increment(x)
#define basic_overloaded_p(x)
#define basic_undefined_p(x)
#define EXPRESSION(x)
EXPRESSION.
#define type_undefined_p(x)
#define entity_undefined_p(x)
#define expression_normalized(x)
#define functional_parameters(x)
#define code_initializations(x)
#define PARAMETER(x)
PARAMETER.
#define variable_qualifiers(x)
#define variable_dimensions(x)
#define call_arguments(x)
#define syntax_range_p(x)
#define basic_string_p(x)
#define expression_syntax(x)
#define functional_undefined
#define entity_domain
newgen_syntax_domain_defined
#define variable_basic(x)
#define basic_logical_p(x)
#define entity_initial(x)
Value b1
booleen indiquant quel membre est en cours d'analyse
Pvecteur cp
pointeur sur l'egalite ou l'inegalite courante
The following data structure describes an intrinsic function: its name and its arity and its type,...
type(* intrinsic_type)(int)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.
context for type checking.
#define ENTITY_CONVERSION_CMPLX_P(e)
#define ENTITY_CONVERSION_DCMPLX_P(e)
#define exp
Avoid some warnings from "gcc -Wshadow".