PIPS
|
Go to the source code of this file.
Data Structures | |
struct | type_context_t |
context for type checking. More... | |
struct | IntrinsicDescriptor |
The following data structure describes an intrinsic function: its name and its arity and its type, a function to type it (?) and a function to obtain its name if it is different from the entity user name, e.g. More... | |
Macros | |
#define | INT_LENGTH 4 |
Warning! Do not modify this file that is automatically generated! More... | |
#define | REAL_LENGTH 4 |
#define | DOUBLE_LENGTH 8 |
#define | COMPLEX_LENGTH 8 |
#define | DCOMPLEX_LENGTH 16 |
Typedefs | |
typedef struct type_context_t * | type_context_p |
typedef basic(* | typing_function_t) (call, type_context_p) |
typedef void(* | switch_name_function) (expression, type_context_p) |
typedef struct IntrinsicDescriptor | IntrinsicDescriptor |
The following data structure describes an intrinsic function: its name and its arity and its type, a function to type it (?) and a function to obtain its name if it is different from the entity user name, e.g. More... | |
#define COMPLEX_LENGTH 8 |
Definition at line 37 of file bootstrap.h.
#define DCOMPLEX_LENGTH 16 |
Definition at line 38 of file bootstrap.h.
#define DOUBLE_LENGTH 8 |
Definition at line 36 of file bootstrap.h.
#define INT_LENGTH 4 |
Warning! Do not modify this file that is automatically generated!
Modify src/Libs/bootstrap/bootstrap-local.h instead, to add your own modifications. header file built by cproto bootstrap-local.h should be some properties to accomodate cray codes??
Definition at line 34 of file bootstrap.h.
#define REAL_LENGTH 4 |
Definition at line 35 of file bootstrap.h.
typedef struct IntrinsicDescriptor IntrinsicDescriptor |
The following data structure describes an intrinsic function: its name and its arity and its type, a function to type it (?) and a function to obtain its name if it is different from the entity user name, e.g.
because of special characters or name collisions.
typedef void(* switch_name_function) (expression, type_context_p) |
Definition at line 52 of file bootstrap.h.
typedef struct type_context_t * type_context_p |
typedef basic(* typing_function_t) (call, type_context_p) |
Definition at line 50 of file bootstrap.h.
bool arguments_are_compatible | ( | call | c, |
hash_table | types | ||
) |
First item
Next item
types | ypes |
Definition at line 1965 of file bootstrap.c.
References b1, b2, basic_compatible_p, basic_undefined, basic_undefined_p, call_arguments, EXPRESSION, GET_TYPE, and MAP.
Referenced by typing_of_assign().
Create all intrinsics, skipping user-defined one
Creates the dynamic and static areas for the super global arrays such as the logical unit array (see below).
The current entity is unknown, but for a TOP-LEVEL:TOP-LEVEL which is used to create the logical unit array for IO effects
create hidden variables to modelize the abstract states defined by the libc:
seed for random function package
heap abstract state
Create hidden variable to modelize the abstract state of : temporary arry for memmove function. Molka Becher
Create the empty label
FI: I suppress the owner filed to make the database moveable
FC: the content must be consistent with pipsdbm/methods.h
workspace | orkspace |
Definition at line 5619 of file bootstrap.c.
References concatenate(), CreateAreas(), CreateHeapAbstractState(), CreateIntrinsics(), CreateLogicalUnits(), CreateMemmoveAbstractState(), CreateRandomSeed(), CreateTimeSeed(), db_get_module_list(), DB_PUT_MEMORY_RESOURCE, db_resource_p(), DEFAULT_ENTITY_KIND, entity_domain, gen_array_free(), gen_array_item(), gen_array_nitems(), int, is_value_constant, LABEL_PREFIX, make_constant_litteral(), make_entity, make_storage_rom(), make_value(), MakeTypeStatement(), MODULE_SEP_STRING, pips_debug, pips_internal_error, set_add_element(), set_free(), set_make(), set_string, strdup(), and TOP_LEVEL_MODULE_NAME.
Referenced by create_workspace().
expression cast_constant | ( | expression | exp_constant, |
basic | to_basic, | ||
type_context_p | context | ||
) |
Convert if necessary
Two arguments, with imagine party
One argument, no imagine party
DCOMPLEX -> COMPLEX
Conversion implicit
Conversion explicit
COMPLEX -> DCOMPLEX
Conversion implicit
Conversion explicit
exp_constant | xp_constant |
to_basic | o_basic |
context | ontext |
Definition at line 1343 of file bootstrap.c.
References basic_complex, basic_complex_p, call_arguments, call_function, CAR, CDR, CMPLX_GENERIC_CONVERSION_NAME, CONS, convert_constant(), copy_entity(), CreateIntrinsic(), DCMPLX_GENERIC_CONVERSION_NAME, DOUBLE_LENGTH, entity_constant_p, ENTITY_CONVERSION_CMPLX_P, ENTITY_CONVERSION_DCMPLX_P, ENTITY_IMPLIED_CMPLX_P, ENTITY_IMPLIED_DCMPLX_P, ENTITY_UNARY_MINUS_P, exp, EXPRESSION, expression_syntax, free_basic(), get_bool_property(), IMPLIED_COMPLEX_NAME, IMPLIED_DCOMPLEX_NAME, is_basic_float, is_syntax_call, make_basic_float(), make_call(), make_constant_entity(), make_expression(), make_syntax(), NIL, normalized_undefined, REAL_LENGTH, syntax_call, and syntax_call_p.
Referenced by insert_cast(), and simplification_conversion().
bool check_loop_range | ( | range | r, |
hash_table | types | ||
) |
types | ypes |
Definition at line 292 of file type_checker.c.
References STUB_ERROR.
Referenced by check_this_loop(), and type_this_expression().
INT -> REAL
INT -> DOUBLE
INT -> COMPLEX
INT -> DCOMPLEX
REAL -> INT
REAL -> DOUBLE
REAL -> COMPLEX
REAL -> DCOMPLEX
DOUBLE -> INT
DOUBLE -> REAL
DOUBLE -> COMPLEX
DOUBLE -> DCOMPLEX
to_basic | o_basic |
Definition at line 1253 of file bootstrap.c.
References basic_complex, basic_complex_p, basic_equal_p(), basic_float, basic_float_p, basic_int_p, call_function, convert_constant_from_double_to_complex(), convert_constant_from_double_to_dcomplex(), convert_constant_from_double_to_int(), convert_constant_from_double_to_real(), convert_constant_from_int_to_complex(), convert_constant_from_int_to_dcomplex(), convert_constant_from_int_to_double(), convert_constant_from_int_to_real(), convert_constant_from_real_to_complex(), convert_constant_from_real_to_dcomplex(), convert_constant_from_real_to_double(), convert_constant_from_real_to_int(), copy_call(), entity_basic(), and entity_constant_p.
Referenced by cast_constant().
void CreateAreas | ( | void | ) |
cproto-generated files
Definition at line 104 of file bootstrap.c.
References ABSTRACT_LOCATION, AddPackageToName(), DYNAMIC_AREA_LOCAL_NAME, ENTITY_DYNAMIC_AREA, ENTITY_STATIC_AREA, is_storage_rom, is_type_area, is_value_unknown, make_area(), make_entity, make_storage(), make_type(), make_value(), NIL, STATIC_AREA_LOCAL_NAME, TOP_LEVEL_MODULE_NAME, and UU.
Referenced by bootstrap().
void CreateIntrinsics | ( | set | module_list | ) |
The table of intrinsic functions. this table is used at the begining of linking to create Fortran operators, commands and intrinsic functions.
Functions with a variable number of arguments are declared with INT_MAX arguments.
Nga Nguyen 27/06/2003 Fuse the tables of intrinsics for C and Fortran. Since there are differences between some kind of operators, such as in Fortran, "+" is only applied to arithmetic numbers, in C, "+" is also applied to pointer, the typing functions are different. So in some cases, we have to rename the operators
Pragma can be represented in the pips IR as a list of expression so new functions/intrinsics are needed. For exmaple to represent OMP pragmas, following intrinscs are needed: 1 - omp, parallel and for which are constant so with 0 argument, 2 - the colom poperator (for reduction) that takes two arguments 3 - private and reduction that takes a variable number of arguments.
internal inverse operator...
FORTRAN IO statement
Control statement
Arnauld Leservot, code CEA
(0.,1.) -> switched to a function call...
Bit manipulation functions : ISO/IEC 1539
These operators are used within the OPTIMIZE transformation in order to manipulate operators such as n-ary add and multiply or multiply-add operators ( JZ - sept 98)
integer combined multiply add or sub - FC oct 2005
Here are C intrinsics arranged in the order of the standard ISO/IEC 9899:TC2. MB
ISO 6.5.2.3 structure and union members
ISO 6.5.2.4 postfix increment and decrement operators, real or pointer type operand
ISO 6.5.3.1 prefix increment and decrement operators, real or pointer type operand
ISO 6.5.3.2 address and indirection operators, add pointer type
ISO 6.5.3.3 unary arithmetic operators
Unuary minus : ALREADY EXIST (FORTRAN) {UNARY_MINUS_OPERATOR_NAME, 1, default_intrinsic_type, typing_arithmetic_operator, 0},
ISO 6.5.5 multiplicative operators : ALREADY EXIST (FORTRAN) {MULTIPLY_OPERATOR_NAME, 2, default_intrinsic_type, typing_arithmetic_operator, 0}, {DIVIDE_OPERATOR_NAME, 2, default_intrinsic_type, typing_arithmetic_operator, 0},
ISO 6.5.6 additive operators, arithmetic types or pointer + integer type
ISO 6.5.7 bitwise shift operators
ISO 6.5.8 relational operators,arithmetic or pointer types
ISO 6.5.9 equality operators, return 0 or 1
ISO 6.5.10 bitwise AND operator
ISO 6.5.11 bitwise exclusive OR operator
ISO 6.5.12 bitwise inclusive OR operator
ISO 6.5.13 logical AND operator
ISO 6.5.14 logical OR operator
ISO 6.5.15 conditional operator
ISO 6.5.16.1 simple assignment : ALREADY EXIST (FORTRAN) {ASSIGN_OPERATOR_NAME, 2, default_intrinsic_type, typing_of_assign, 0},
ISO 6.5.16.2 compound assignments
ISO 6.5.17 comma operator
intrinsic to handle C initialization
include <assert.h>
does not return
include <complex.h>
include <ctype.h>
End ctype.h
Real type is void -> unsigned short int **
include <errno.h>
{"errno", 0, overloaded_to_integer_type, 0, 0},
bits/errno.h
include <fenv.h>
include <float.h>
{"__flt_rounds", 1, void_to_integer_type, 0, 0},
include <inttypes.h>
include <iso646.h>
{"_sysconf", 1, integer_to_integer_type, 0, 0},
{"localeconv", 1, default_intrinsic_type, 0, 0}, {"dcgettext", 3, default_intrinsic_type, 0, 0}, {"dgettext", 2, default_intrinsic_type, 0, 0}, {"gettext", 1, default_intrinsic_type, 0, 0}, {"textdomain", 1, default_intrinsic_type, 0, 0}, {"bindtextdomain", 2, default_intrinsic_type, 0, 0}, {"wdinit", 1, void_to_integer_type, 0 ,0}, {"wdchkind", 1, overloaded_to_integer_type, 0 ,0}, {"wdbindf", 3, overloaded_to_integer_type, 0 ,0}, {"wddelim", 3, default_intrinsic_type, 0, 0}, {"mcfiller", 1, void_to_overloaded_type, 0, 0}, {"mcwrap", 1, void_to_integer_type, 0 ,0},
include <limits.h>
include <locale.h>
include <math.h>
GNU C Library
End math.h
same name in stdlib {"ecvt", 4, default_intrinsic_type, 0, 0}, {"fcvt", 4, default_intrinsic_type, 0, 0}, {"gcvt", 3, default_intrinsic_type, 0, 0}, {"strtod", 2, overloaded_to_double_type, 0, 0},
include <setjmp.h>
include <signal.h>
include <stdarg.h>
include <stdbool.h>
include <stddef.h>
include <stdint.h>
include <stdio.h>
same name in stdlib {"getopt", 3, overloaded_to_integer_type, 0, 0}, {"getsubopt", 3, default_intrinsic_type, 0, 0},
C IO system functions in man -S 2. The typing could be refined. See unistd.h
2 or 3 arguments
returns ssize_t
{FCNTL_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
2 or 3 arguments of various types
located with fcntl.h
include <stdlib.h>
void -> long int
include <string.h>
include <tgmath.h>
include <time.h>
include <wchar.h>
include <wctype.h>
netdb.h
include <fcntl.h>
OMP
BSD <err.h>
F95
F2003
PIPS run-time support for C code generation
Source code located in validation/Hyperplane/run_time.src for the time being.
assembly function
PIPS intrinsics to simulate various effects
PIRE
PI necessary calls
module_list | odule_list |
Definition at line 4417 of file bootstrap.c.
References __ERRNO_LOCATION_OPERATOR_NAME, __FILBUF_FUNCTION_NAME, __FILSBUF_FUNCTION_NAME, __H_ERRNO_LOCATION_OPERATOR_NAME, _EXIT_FUNCTION_NAME, _IO_GETC_FUNCTION_NAME, _IO_PUTC_FUNCTION_NAME, _TOLOWER_OPERATOR_NAME, _TOUPPER_OPERATOR_NAME, A614_FUNCTION_NAME, ABORT_FUNCTION_NAME, ABS_OPERATOR_NAME, ACOS_OPERATOR_NAME, ACOSF_OPERATOR_NAME, ACOSHF_OPERATOR_NAME, ACOSHL_OPERATOR_NAME, ACOSL_OPERATOR_NAME, ADDRESS_OF_OPERATOR_NAME, AIMAG_CONVERSION_NAME, AINT_CONVERSION_NAME, ALLOCA_FUNCTION_NAME, ALLOCATE_FUNCTION_NAME, ALOG10_OPERATOR_NAME, ALOG_OPERATOR_NAME, AMAX0_OPERATOR_NAME, AMAX1_OPERATOR_NAME, AMIN0_OPERATOR_NAME, AMIN1_OPERATOR_NAME, AND_OPERATOR_NAME, ANINT_CONVERSION_NAME, ASIN_OPERATOR_NAME, ASINF_OPERATOR_NAME, ASINHF_OPERATOR_NAME, ASINHL_OPERATOR_NAME, ASINL_OPERATOR_NAME, ASM_FUNCTION_NAME, ASSERT_FAIL_FUNCTION_NAME, ASSERT_FUNCTION_NAME, ASSIGN_OPERATOR_NAME, ASSIGN_SUBSTRING_FUNCTION_NAME, assign_substring_type(), ATAN2_OPERATOR_NAME, ATAN2F_OPERATOR_NAME, ATAN2L_OPERATOR_NAME, ATAN_OPERATOR_NAME, ATANF_OPERATOR_NAME, ATANHF_OPERATOR_NAME, ATANHL_OPERATOR_NAME, ATANL_OPERATOR_NAME, ATEXIT_FUNCTION_NAME, ATOF_FUNCTION_NAME, ATOI_FUNCTION_NAME, ATOL_FUNCTION_NAME, ATOLL_FUNCTION_NAME, ATOQ_FUNCTION_NAME, BACKSPACE_FUNCTION_NAME, BIT_SIZE_OPERATOR_NAME, BITWISE_AND_OPERATOR_NAME, BITWISE_AND_UPDATE_OPERATOR_NAME, BITWISE_NOT_OPERATOR_NAME, BITWISE_OR_OPERATOR_NAME, BITWISE_OR_UPDATE_OPERATOR_NAME, BITWISE_XOR_OPERATOR_NAME, BITWISE_XOR_UPDATE_OPERATOR_NAME, BRACE_INTRINSIC, BREAK_FUNCTION_NAME, BSEARCH_FUNCTION_NAME, BTEST_OPERATOR_NAME, BTOWC_FUNCTION_NAME, BUFFERIN_FUNCTION_NAME, BUFFEROUT_FUNCTION_NAME, C_164A_FUNCTION_NAME, C_ABS_FUNCTION_NAME, C_ACOS_OPERATOR_NAME, C_ACOSH_OPERATOR_NAME, C_AND_OPERATOR_NAME, C_ASIN_OPERATOR_NAME, C_ASINH_OPERATOR_NAME, C_ATAN2_OPERATOR_NAME, C_ATAN_OPERATOR_NAME, C_ATANH_OPERATOR_NAME, C_CABS_OPERATOR_NAME, C_CCOS_OPERATOR_NAME, C_CEXP_OPERATOR_NAME, C_CLOG_OPERATOR_NAME, C_CLOSE_FUNCTION_NAME, C_COS_OPERATOR_NAME, C_COSH_OPERATOR_NAME, C_CSIN_OPERATOR_NAME, C_CSQRT_OPERATOR_NAME, C_EQUAL_OPERATOR_NAME, C_EXP_OPERATOR_NAME, C_GREATER_OR_EQUAL_OPERATOR_NAME, C_GREATER_THAN_OPERATOR_NAME, C_LESS_OR_EQUAL_OPERATOR_NAME, C_LESS_THAN_OPERATOR_NAME, C_LOC_FUNCTION_NAME, C_LOG10_OPERATOR_NAME, C_LOG_OPERATOR_NAME, C_MODULO_OPERATOR_NAME, C_NON_EQUAL_OPERATOR_NAME, C_NOT_OPERATOR_NAME, C_OPEN_FUNCTION_NAME, C_OR_OPERATOR_NAME, C_READ_FUNCTION_NAME, C_RETURN_FUNCTION_NAME, C_REWIND_FUNCTION_NAME, C_SIN_OPERATOR_NAME, C_SINH_OPERATOR_NAME, C_SQRT_OPERATOR_NAME, C_TAN_OPERATOR_NAME, C_TANH_OPERATOR_NAME, C_WRITE_FUNCTION_NAME, CABS_OPERATOR_NAME, CABSF_OPERATOR_NAME, CABSL_OPERATOR_NAME, CACOS_OPERATOR_NAME, CACOSF_OPERATOR_NAME, CACOSH_OPERATOR_NAME, CACOSHF_OPERATOR_NAME, CACOSHL_OPERATOR_NAME, CACOSL_OPERATOR_NAME, CALLOC_FUNCTION_NAME, CARG_OPERATOR_NAME, CARGF_OPERATOR_NAME, CARGL_OPERATOR_NAME, CASE_FUNCTION_NAME, CASIN_OPERATOR_NAME, CASINF_OPERATOR_NAME, CASINH_OPERATOR_NAME, CASINHF_OPERATOR_NAME, CASINHL_OPERATOR_NAME, CASINL_OPERATOR_NAME, CATAN_OPERATOR_NAME, CATANF_OPERATOR_NAME, CATANH_OPERATOR_NAME, CATANHF_OPERATOR_NAME, CATANHL_OPERATOR_NAME, CATANL_OPERATOR_NAME, CBRT_OPERATOR_NAME, CBRTF_OPERATOR_NAME, CBRTL_OPERATOR_NAME, CCOS_OPERATOR_NAME, CCOSF_OPERATOR_NAME, CCOSH_OPERATOR_NAME, CCOSHF_OPERATOR_NAME, CCOSHL_OPERATOR_NAME, CCOSL_OPERATOR_NAME, CDABS_OPERATOR_NAME, CDCOS_OPERATOR_NAME, CDEXP_OPERATOR_NAME, CDLOG_OPERATOR_NAME, CDSIN_OPERATOR_NAME, CDSQRT_OPERATOR_NAME, CEIL_OPERATOR_NAME, CEILF_OPERATOR_NAME, CEILL_OPERATOR_NAME, CEXP_OPERATOR_NAME, CEXPF_OPERATOR_NAME, CEXPL_OPERATOR_NAME, char_pointer_to_double_type(), CHAR_TO_INT_CONVERSION_NAME, character_to_character_type(), character_to_integer_type(), character_to_logical_type(), check_backspace(), check_close(), check_endfile(), check_format(), check_inquire(), check_open(), check_read_write(), check_rewind(), CIMAG_OPERATOR_NAME, CIMAGF_OPERATOR_NAME, CIMAGL_OPERATOR_NAME, CLEARERR_FUNCTION_NAME, CLOCK_FUNCTION_NAME, CLOCK_GETTIME_FUNCTION_NAME, CLOG_OPERATOR_NAME, CLOGF_OPERATOR_NAME, CLOGL_OPERATOR_NAME, CLOSE_FUNCTION_NAME, CMPLX_GENERIC_CONVERSION_NAME, COMMA_OPERATOR_NAME, complex_to_complex_type(), complex_to_real_type(), CONCATENATION_FUNCTION_NAME, CONDITIONAL_OPERATOR_NAME, CONJ_OPERATOR_NAME, CONJF_OPERATOR_NAME, CONJG_OPERATOR_NAME, CONJL_OPERATOR_NAME, CONTINUE_FUNCTION_NAME, COPYSIGN_OPERATOR_NAME, COPYSIGNF_OPERATOR_NAME, COPYSIGNL_OPERATOR_NAME, COS_OPERATOR_NAME, COSF_OPERATOR_NAME, COSH_OPERATOR_NAME, COSHF_OPERATOR_NAME, COSHL_OPERATOR_NAME, COSL_OPERATOR_NAME, CPOW_OPERATOR_NAME, CPOWF_OPERATOR_NAME, CPOWL_OPERATOR_NAME, CPROJ_OPERATOR_NAME, CPROJF_OPERATOR_NAME, CPROJL_OPERATOR_NAME, CPU_TIME_FUNCTION_NAME, CREAL_OPERATOR_NAME, CREALF_OPERATOR_NAME, CREALL_OPERATOR_NAME, CREAT64_FUNCTION_NAME, CREAT_FUNCTION_NAME, CSIN_OPERATOR_NAME, CSINF_OPERATOR_NAME, CSINH_OPERATOR_NAME, CSINHF_OPERATOR_NAME, CSINHL_OPERATOR_NAME, CSINL_OPERATOR_NAME, CSQRT_OPERATOR_NAME, CSQRTF_OPERATOR_NAME, CSQRTL_OPERATOR_NAME, CTAN_OPERATOR_NAME, CTANF_OPERATOR_NAME, CTANH_OPERATOR_NAME, CTANHF_OPERATOR_NAME, CTANHL_OPERATOR_NAME, CTANL_OPERATOR_NAME, CTERMID_FUNCTION_NAME, CTYPE_B_LOC_OPERATOR_NAME, CUSERID_FUNCTION_NAME, DABS_OPERATOR_NAME, DACOS_OPERATOR_NAME, DASIN_OPERATOR_NAME, DATA_LIST_FUNCTION_NAME, DATAN2_OPERATOR_NAME, DATAN_OPERATOR_NAME, DBLE_GENERIC_CONVERSION_NAME, DCMPLX_GENERIC_CONVERSION_NAME, DCONJG_OPERATOR_NAME, DCOS_OPERATOR_NAME, DCOSH_OPERATOR_NAME, DDIM_OPERATOR_NAME, DEALLOCATE_FUNCTION_NAME, DECIMAL_TO_DOUBLE_OPERATOR_NAME, DECIMAL_TO_EXTENDED_OPERATOR_NAME, DECIMAL_TO_QUADRUPLE_OPERATOR_NAME, DECIMAL_TO_SINGLE_OPERATOR_NAME, DEFAULT_FUNCTION_NAME, default_intrinsic_type(), DEREFERENCING_OPERATOR_NAME, DEXP_OPERATOR_NAME, DFLOAT_GENERIC_CONVERSION_NAME, DIFFTIME_FUNCTION_NAME, DIM_OPERATOR_NAME, DIMAG_CONVERSION_NAME, DINT_CONVERSION_NAME, DIRECTIO_FUNCTION_NAME, DIV_FUNCTION_NAME, DIVIDE_OPERATOR_NAME, DIVIDE_UPDATE_OPERATOR_NAME, DLOG10_OPERATOR_NAME, DLOG_OPERATOR_NAME, DMAX1_OPERATOR_NAME, DMIN1_OPERATOR_NAME, DNINT_CONVERSION_NAME, DOUBLE_MODULO_OPERATOR_NAME, DOUBLE_TO_DECIMAL_OPERATOR_NAME, double_to_double_type(), double_to_integer_type(), double_to_longinteger_type(), double_to_longlonginteger_type(), doublecomplex_to_double_type(), doublecomplex_to_doublecomplex_type(), DPROD_OPERATOR_NAME, DRAND48_FUNCTION_NAME, DREAL_GENERIC_CONVERSION_NAME, DSIGN_OPERATOR_NAME, DSIN_OPERATOR_NAME, DSINH_OPERATOR_NAME, DSQRT_OPERATOR_NAME, DTAN_OPERATOR_NAME, DTANH_OPERATOR_NAME, DTIME_FUNCTION_NAME, DUP2_FUNCTION_NAME, ECONVERT_OPERATOR_NAME, ECVT_FUNCTION_NAME, END_FUNCTION_NAME, ENDFILE_FUNCTION_NAME, EOLE_FMA_OPERATOR_NAME, EOLE_FMS_OPERATOR_NAME, EOLE_PROD_OPERATOR_NAME, EOLE_SUM_OPERATOR_NAME, EQUAL_OPERATOR_NAME, EQUIV_OPERATOR_NAME, ERAND48_FUNCTION_NAME, ERF_OPERATOR_NAME, ERFC_OPERATOR_NAME, ERFCF_OPERATOR_NAME, ERFCL_OPERATOR_NAME, ERFF_OPERATOR_NAME, ERFL_OPERATOR_NAME, ERR_FUNCTION_NAME, ERRX_FUNCTION_NAME, ETIME_FUNCTION_NAME, EXIT_FUNCTION_NAME, EXITHANDLE_FUNCTION_NAME, EXP2_OPERATOR_NAME, EXP2F_OPERATOR_NAME, EXP2L_OPERATOR_NAME, EXP_OPERATOR_NAME, EXPF_OPERATOR_NAME, EXPL_OPERATOR_NAME, EXPM1_OPERATOR_NAME, EXPM1F_OPERATOR_NAME, EXPM1L_OPERATOR_NAME, EXTENDED_TO_DECIMAL_OPERATOR_NAME, FABS_OPERATOR_NAME, FABSF_OPERATOR_NAME, FABSL_OPERATOR_NAME, FCLOSE_FUNCTION_NAME, FCNTL_FUNCTION_NAME, FCONVERT_OPERATOR_NAME, FCVT_FUNCTION_NAME, FDATASYNC_FUNCTION_NAME, FDIM_OPERATOR_NAME, FDIMF_OPERATOR_NAME, FDIML_OPERATOR_NAME, FDOPEN_FUNCTION_NAME, FECLEAREXCEPT_FUNCTION_NAME, FEGETROUND_FUNCTION_NAME, FEOF_FUNCTION_NAME, FERAISEEXCEPT_FUNCTION_NAME, FERROR_FUNCTION_NAME, FESETEXCEPTFLAG_FUNCTION_NAME, FESETROUND_FUNCTION_NAME, FETESTEXCEPT_FUNCTION_NAME, FFLUSH_FUNCTION_NAME, FGETC_FUNCTION_NAME, FGETPOS64_FUNCTION_NAME, FGETPOS_FUNCTION_NAME, FGETS_FUNCTION_NAME, FGETWC_FUNCTION_NAME, FGETWS_FUNCTION_NAME, FIELD_OPERATOR_NAME, FILE_TO_DECIMAL_OPERATOR_NAME, FILENO_FUNCTION_NAME, FLOAT_GENERIC_CONVERSION_NAME, FLOOR_OPERATOR_NAME, FLOORF_OPERATOR_NAME, FLOORL_OPERATOR_NAME, FMA_OPERATOR_NAME, FMAF_OPERATOR_NAME, FMAL_OPERATOR_NAME, FMAX_OPERATOR_NAME, FMAXF_OPERATOR_NAME, FMAXL_OPERATOR_NAME, FMIN_OPERATOR_NAME, FMINF_OPERATOR_NAME, FMINL_OPERATOR_NAME, FMOD_OPERATOR_NAME, FMODF_OPERATOR_NAME, FMODL_OPERATOR_NAME, FOPEN64_FUNCTION_NAME, FOPEN_FUNCTION_NAME, FORMAT_FUNCTION_NAME, FPCLASSIFY_OPERATOR_NAME, FPRINTF_FUNCTION_NAME, FPUTC_FUNCTION_NAME, FPUTS_FUNCTION_NAME, FPUTWC_FUNCTION_NAME, FPUTWS_FUNCTION_NAME, FREAD_FUNCTION_NAME, FREE_FUNCTION_NAME, FREOPEN64_FUNCTION_NAME, FREOPEN_FUNCTION_NAME, FREXP_OPERATOR_NAME, FSCANF_FUNCTION_NAME, FSEEK_FUNCTION_NAME, FSEEKO64_FUNCTION_NAME, FSEEKO_FUNCTION_NAME, FSETPOS64_FUNCTION_NAME, FSETPOS_FUNCTION_NAME, FSTAT_FUNCTION_NAME, FSYNC_FUNCTION_NAME, FTELL_FUNCTION_NAME, FTELLO64_FUNCTION_NAME, FTELLO_FUNCTION_NAME, FUNC_TO_DECIMAL_OPERATOR_NAME, FWIDE_FUNCTION_NAME, FWPRINTF_FUNCTION_NAME, FWRITE_FUNCTION_NAME, FWSCANF_FUNCTION_NAME, GAMMA_OPERATOR_NAME, GCC_CIMAG_OPERATOR_NAME, GCC_CREAL_OPERATOR_NAME, GCONVERT_OPERATOR_NAME, GCVT_FUNCTION_NAME, GETC_FUNCTION_NAME, GETCHAR_FUNCTION_NAME, GETCWD_FUNCTION_NAME, GETENV_FUNCTION_NAME, GETEXECNAME_FUNCTION_NAME, GETLOGIN_FUNCTION_NAME, GETOPT_FUNCTION_NAME, GETOPT_LONG_FUNCTION_NAME, GETOPT_LONG_ONLY_FUNCTION_NAME, GETPASS_FUNCTION_NAME, GETPASSPHRASE_FUNCTION_NAME, GETPW_FUNCTION_NAME, GETS_FUNCTION_NAME, GETSUBOPT_FUNCTION_NAME, GETTIMEOFDAY_FUNCTION_NAME, GETW_FUNCTION_NAME, GETWC_FUNCTION_NAME, GETWCHAR_FUNCTION_NAME, GRANTPT_FUNCTION_NAME, GREATER_OR_EQUAL_OPERATOR_NAME, GREATER_THAN_OPERATOR_NAME, hash_string, hash_table_make(), HYPOT_OPERATOR_NAME, HYPOTF_OPERATOR_NAME, HYPOTL_OPERATOR_NAME, IABS_OPERATOR_NAME, IAND_OPERATOR_NAME, IBCLR_OPERATOR_NAME, IBITS_OPERATOR_NAME, IBSET_OPERATOR_NAME, IDIM_OPERATOR_NAME, IDINT_GENERIC_CONVERSION_NAME, IDNINT_CONVERSION_NAME, IEOR_OPERATOR_NAME, IFIX_GENERIC_CONVERSION_NAME, ILOGB_OPERATOR_NAME, ILOGBF_OPERATOR_NAME, ILOGBL_OPERATOR_NAME, IMA_OPERATOR_NAME, IMAXABS_FUNCTION_NAME, IMAXDIV_FUNCTION_NAME, IMPLIED_COMPLEX_NAME, IMPLIED_DCOMPLEX_NAME, IMPLIED_DO_NAME, IMS_OPERATOR_NAME, INDEX_OPERATOR_NAME, INITSTATE_FUNCTION_NAME, INQUIRE_FUNCTION_NAME, INT_GENERIC_CONVERSION_NAME, INT_TO_CHAR_CONVERSION_NAME, integer_to_integer_type(), integer_to_logical_type(), integer_to_overloaded_type(), integer_to_real_type(), integer_to_void_type(), intrinsic_type_descriptor_mapping, INVERSE_OPERATOR_NAME, IOCTL_FUNCTION_NAME, IOR_OPERATOR_NAME, ISALNUM_OPERATOR_NAME, ISALPHA_OPERATOR_NAME, ISASCII_OPERATOR_NAME, ISATTY_FUNCTION_NAME, ISBLANK_OPERATOR_NAME, ISCNTRL_OPERATOR_NAME, ISDIGIT_OPERATOR_NAME, ISFINITE_OPERATOR_NAME, ISGRAPH_OPERATOR_NAME, ISGREATER_OPERATOR_NAME, ISGREATEREQUAL_OPERATOR_NAME, ISHFT_OPERATOR_NAME, ISHFTC_OPERATOR_NAME, ISIGN_OPERATOR_NAME, ISINF_OPERATOR_NAME, ISLESS_OPERATOR_NAME, ISLESSEQUAL_OPERATOR_NAME, ISLESSGREATER_OPERATOR_NAME, ISLOWER_OPERATOR_NAME, ISNAN_OPERATOR_NAME, ISNANF_OPERATOR_NAME, ISNANL_OPERATOR_NAME, ISNORMAL_OPERATOR_NAME, ISOC99_FSCANF_FUNCTION_NAME, ISOC99_SCANF_FUNCTION_NAME, ISOC99_SSCANF_FUNCTION_NAME, ISOC99_VFSCANF_FUNCTION_NAME, ISOC99_VSCANF_FUNCTION_NAME, ISOC99_VSSCANF_FUNCTION_NAME, ISPRINT_OPERATOR_NAME, ISPUNCT_OPERATOR_NAME, ISSPACE_OPERATOR_NAME, ISUNORDERED_OPERATOR_NAME, ISUPPER_OPERATOR_NAME, ISWALNUM_OPERATOR_NAME, ISWALPHA_OPERATOR_NAME, ISWBLANK_OPERATOR_NAME, ISWCNTRL_OPERATOR_NAME, ISWCTYPE_OPERATOR_NAME, ISWDIGIT_OPERATOR_NAME, ISWGRAPH_OPERATOR_NAME, ISWLOWER_OPERATOR_NAME, ISWPRINT_OPERATOR_NAME, ISWPUNCT_OPERATOR_NAME, ISWSPACE_OPERATOR_NAME, ISWUPPER_OPERATOR_NAME, ISWXDIGIT_OPERATOR_NAME, ISXDIGIT_OPERATOR_NAME, J0_OPERATOR_NAME, J1_OPERATOR_NAME, JN_OPERATOR_NAME, JRAND48_FUNCTION_NAME, LABS_FUNCTION_NAME, LCONG48_FUNCTION_NAME, LDEXP_OPERATOR_NAME, LDEXPF_OPERATOR_NAME, LDEXPL_OPERATOR_NAME, LDIV_FUNCTION_NAME, LEFT_SHIFT_OPERATOR_NAME, LEFT_SHIFT_UPDATE_OPERATOR_NAME, LENGTH_OPERATOR_NAME, LESS_OR_EQUAL_OPERATOR_NAME, LESS_THAN_OPERATOR_NAME, LGAMMA_OPERATOR_NAME, LGAMMAF_OPERATOR_NAME, LGAMMAL_OPERATOR_NAME, LGE_OPERATOR_NAME, LGT_OPERATOR_NAME, LINK_FUNCTION_NAME, LIST_DIRECTED_FORMAT_NAME, LLABS_FUNCTION_NAME, LLDIV_FUNCTION_NAME, LLE_OPERATOR_NAME, LLRINT_OPERATOR_NAME, LLRINTF_OPERATOR_NAME, LLRINTL_OPERATOR_NAME, LLROUND_OPERATOR_NAME, LLROUNDF_OPERATOR_NAME, LLROUNDL_OPERATOR_NAME, LLT_OPERATOR_NAME, LLTOSTR_FUNCTION_NAME, LOCALTIME_FUNCTION_NAME, LOG10_OPERATOR_NAME, LOG10F_OPERATOR_NAME, LOG10L_OPERATOR_NAME, LOG1P_OPERATOR_NAME, LOG1PF_OPERATOR_NAME, LOG1PL_OPERATOR_NAME, LOG2_OPERATOR_NAME, LOG2F_OPERATOR_NAME, LOG2L_OPERATOR_NAME, LOG_OPERATOR_NAME, LOGB_OPERATOR_NAME, LOGBF_OPERATOR_NAME, LOGBL_OPERATOR_NAME, LOGF_OPERATOR_NAME, logical_to_logical_type(), LOGL_OPERATOR_NAME, longdouble_to_integer_type(), longdouble_to_longdouble_type(), longdouble_to_longinteger_type(), longdouble_to_longlonginteger_type(), longdoublecomplex_to_longdouble_type(), longdoublecomplex_to_longdoublecomplex_type(), longinteger_to_longinteger_type(), longinteger_to_overloaded_type(), longlonginteger_to_longlonginteger_type(), longlonginteger_to_overloaded_type(), LRAND48_FUNCTION_NAME, LRINT_OPERATOR_NAME, LRINTF_OPERATOR_NAME, LRINTL_OPERATOR_NAME, LROUND_OPERATOR_NAME, LROUNDF_OPERATOR_NAME, LROUNDL_OPERATOR_NAME, LSTAT_FUNCTION_NAME, MALLOC_FUNCTION_NAME, MATHERR_OPERATOR_NAME, MAX0_OPERATOR_NAME, MAX1_OPERATOR_NAME, MAX_OPERATOR_NAME, MBLEN_FUNCTION_NAME, MBRLEN_FUNCTION_NAME, MBRTOWC_FUNCTION_NAME, MBSINIT_FUNCTION_NAME, MBSRTOWCS_FUNCTION_NAME, MBSTOWCS_FUNCTION_NAME, MBTOWC_FUNCTION_NAME, MEMALIGN_FUNCTION_NAME, MEMCHR_FUNCTION_NAME, MEMCMP_FUNCTION_NAME, MEMCPY_FUNCTION_NAME, MEMMOVE_FUNCTION_NAME, MEMSET_FUNCTION_NAME, MIN0_OPERATOR_NAME, MIN1_OPERATOR_NAME, MIN_OPERATOR_NAME, MINUS_C_OPERATOR_NAME, MINUS_OPERATOR_NAME, MINUS_UPDATE_OPERATOR_NAME, MKSTEMP64_FUNCTION_NAME, MKSTEMP_FUNCTION_NAME, MKTEMP_FUNCTION_NAME, MODF_OPERATOR_NAME, MODFF_OPERATOR_NAME, MODULO_OPERATOR_NAME, MODULO_UPDATE_OPERATOR_NAME, MPI_BARRIER_FUNCTION_NAME, MPI_BSEND_FUNCTION_NAME, MPI_COMM_RANK_FUNCTION_NAME, MPI_COMM_SIZE_FUNCTION_NAME, MPI_FINALIZE_FUNCTION_NAME, MPI_IBSEND_FUNCTION_NAME, MPI_INIT_FUNCTION_NAME, MPI_IRECV_FUNCTION_NAME, MPI_IRSEND_FUNCTION_NAME, MPI_ISEND_FUNCTION_NAME, MPI_ISSEND_FUNCTION_NAME, MPI_RECV_FUNCTION_NAME, MPI_RSEND_FUNCTION_NAME, MPI_SEND_FUNCTION_NAME, MPI_SENDRECV_FUNCTION_NAME, MPI_SSEND_FUNCTION_NAME, MRAND48_FUNCTION_NAME, MULTIPLY_OPERATOR_NAME, MULTIPLY_UPDATE_OPERATOR_NAME, MVBITS_OPERATOR_NAME, IntrinsicDescriptor::name, NAN_OPERATOR_NAME, NANF_OPERATOR_NAME, NANL_OPERATOR_NAME, NANOSLEEP_FUNCTION_NAME, NEARBYINT_OPERATOR_NAME, NEARBYINTF_OPERATOR_NAME, NEARBYINTL_OPERATOR_NAME, NEXTAFTER_OPERATOR_NAME, NEXTAFTERF_OPERATOR_NAME, NEXTAFTERL_OPERATOR_NAME, NEXTTOWARD_OPERATOR_NAME, NEXTTOWARDF_OPERATOR_NAME, NEXTTOWARDL_OPERATOR_NAME, NINT_CONVERSION_NAME, no_typing(), NON_EQUAL_OPERATOR_NAME, NON_EQUIV_OPERATOR_NAME, NOT_OPERATOR_NAME, NRAND48_FUNCTION_NAME, OMP_FOR_FUNCTION_NAME, OMP_IF_FUNCTION_NAME, OMP_OMP_FUNCTION_NAME, OMP_PARALLEL_FUNCTION_NAME, OMP_PRIVATE_FUNCTION_NAME, OMP_REDUCTION_FUNCTION_NAME, OPEN64_FUNCTION_NAME, OPEN_FUNCTION_NAME, OR_OPERATOR_NAME, overloaded_to_complex_type(), overloaded_to_double_type(), overloaded_to_doublecomplex_type(), overloaded_to_integer_type(), overloaded_to_logical_type(), overloaded_to_longdouble_type(), overloaded_to_real_type(), overloaded_to_void_type(), PAUSE_FUNCTION_NAME, PCLOSE_FUNCTION_NAME, PERROR_FUNCTION_NAME, PIPS_C_DIV_OPERATOR_NAME, PIPS_C_MAX_OPERATOR_NAME, PIPS_C_MIN_OPERATOR_NAME, PIPS_IO_BARRIER_OPERATOR_NAME, PIPS_MEMORY_BARRIER_OPERATOR_NAME, PLUS_C_OPERATOR_NAME, PLUS_OPERATOR_NAME, PLUS_UPDATE_OPERATOR_NAME, POINT_TO_OPERATOR_NAME, POPEN_FUNCTION_NAME, POSIX_MEMALIGN_FUNCTION_NAME, POST_DECREMENT_OPERATOR_NAME, POST_INCREMENT_OPERATOR_NAME, POW_OPERATOR_NAME, POWER_OPERATOR_NAME, POWF_OPERATOR_NAME, POWL_OPERATOR_NAME, PRE_DECREMENT_OPERATOR_NAME, PRE_INCREMENT_OPERATOR_NAME, PRINTF_FUNCTION_NAME, PSELECT_FUNCTION_NAME, PTSNAME_FUNCTION_NAME, PUTC_FUNCTION_NAME, PUTCHAR_FUNCTION_NAME, PUTENV_FUNCTION_NAME, PUTS_FUNCTION_NAME, PUTW_FUNCTION_NAME, PUTWC_FUNCTION_NAME, PUTWCHAR_FUNCTION_NAME, QECONVERT_OPERATOR_NAME, QECVT_FUNCTION_NAME, QFCONVERT_OPERATOR_NAME, QFCVT_FUNCTION_NAME, QGCONVERT_OPERATOR_NAME, QGCVT_FUNCTION_NAME, QSORT_FUNCTION_NAME, QUADRUPLE_TO_DECIMAL_OPERATOR_NAME, RAISE_FUNCTION_NAME, RAND_FUNCTION_NAME, RANDOM_FUNCTION_NAME, READ_FUNCTION_NAME, REAL_GENERIC_CONVERSION_NAME, REAL_MODULO_OPERATOR_NAME, real_to_double_type(), real_to_integer_type(), real_to_longinteger_type(), real_to_longlonginteger_type(), real_to_real_type(), REALLOC_FUNCTION_NAME, REALPATH_FUNCTION_NAME, RECV_FUNCTION_NAME, register_intrinsic_type_descriptor(), REMAINDER_OPERATOR_NAME, REMAINDERF_OPERATOR_NAME, REMAINDERL_OPERATOR_NAME, REMOVE_FUNCTION_NAME, RENAME_FUNCTION_NAME, REPEAT_VALUE_NAME, RETURN_FUNCTION_NAME, REWIND_FUNCTION_NAME, RIGHT_SHIFT_OPERATOR_NAME, RIGHT_SHIFT_UPDATE_OPERATOR_NAME, RINT_OPERATOR_NAME, RINTF_OPERATOR_NAME, RINTL_OPERATOR_NAME, ROUND_OPERATOR_NAME, ROUNDF_OPERATOR_NAME, ROUNDL_OPERATOR_NAME, SCALB_OPERATOR_NAME, SCALBLN_OPERATOR_NAME, SCALBLNF_OPERATOR_NAME, SCALBLNL_OPERATOR_NAME, SCALBN_OPERATOR_NAME, SCALBNF_OPERATOR_NAME, SCALBNL_OPERATOR_NAME, SCANF_FUNCTION_NAME, SECOND_FUNCTION_NAME, SECONVERT_OPERATOR_NAME, SEED48_FUNCTION_NAME, SELECT_FUNCTION_NAME, SEND_FUNCTION_NAME, set_belong_p(), SETBUF_FUNCTION_NAME, SETBUFFER_FUNCTION_NAME, SETKEY_FUNCTION_NAME, SETLINEBUF_FUNCTION_NAME, SETLOCALE_FUNCTION_NAME, SETSTATE_FUNCTION_NAME, SETVBUF_FUNCTION_NAME, SFCONVERT_OPERATOR_NAME, SGCONVERT_OPERATOR_NAME, SIGFPE_OPERATOR_NAME, SIGN_OPERATOR_NAME, SIGNAL_OPERATOR_NAME, SIGNBIT_OPERATOR_NAME, SIGNIFICAND_OPERATOR_NAME, simplification_complex(), simplification_dcomplex(), simplification_double(), simplification_int(), simplification_real(), SIN_OPERATOR_NAME, SINF_OPERATOR_NAME, SINGLE_TO_DECIMAL_OPERATOR_NAME, SINH_OPERATOR_NAME, SINHF_OPERATOR_NAME, SINHL_OPERATOR_NAME, SINL_OPERATOR_NAME, SNGL_GENERIC_CONVERSION_NAME, SNPRINTF_FUNCTION_NAME, SPRINTF_FUNCTION_NAME, SQRT_OPERATOR_NAME, SQRTF_OPERATOR_NAME, SQRTL_OPERATOR_NAME, SRAND48_FUNCTION_NAME, SRAND_FUNCTION_NAME, SRANDOM_FUNCTION_NAME, SSCANF_FUNCTION_NAME, STAT_FUNCTION_NAME, statement_with_at_most_one_expression_integer(), statement_with_at_most_one_integer_or_character(), statement_without_argument(), STATIC_INITIALIZATION_FUNCTION_NAME, STOP_FUNCTION_NAME, STRCAT_FUNCTION_NAME, STRCHR_FUNCTION_NAME, STRCMP_FUNCTION_NAME, STRCOLL_FUNCTION_NAME, STRCPY_FUNCTION_NAME, STRCSPN_FUNCTION_NAME, STRDUP_FUNCTION_NAME, STRERROR_FUNCTION_NAME, STRERROR_R_FUNCTION_NAME, STRING_TO_DECIMAL_OPERATOR_NAME, STRLEN_FUNCTION_NAME, STRNCAT_FUNCTION_NAME, STRNCMP_FUNCTION_NAME, STRNCPY_FUNCTION_NAME, STRPBRK_FUNCTION_NAME, STRRCHR_FUNCTION_NAME, STRSPN_FUNCTION_NAME, STRSTR_FUNCTION_NAME, STRTOD_FUNCTION_NAME, STRTOF_FUNCTION_NAME, STRTOK_FUNCTION_NAME, STRTOL_FUNCTION_NAME, STRTOLD_FUNCTION_NAME, STRTOLL_FUNCTION_NAME, STRTOUL_FUNCTION_NAME, STRTOULL_FUNCTION_NAME, STRXFRM_FUNCTION_NAME, SUBSTRING_FUNCTION_NAME, substring_type(), SWAB_FUNCTION_NAME, switch_specific_abs(), switch_specific_acos(), switch_specific_aint(), switch_specific_anint(), switch_specific_asin(), switch_specific_atan(), switch_specific_atan2(), switch_specific_cmplx(), switch_specific_cos(), switch_specific_cosh(), switch_specific_dcmplx(), switch_specific_dim(), switch_specific_exp(), switch_specific_log(), switch_specific_log10(), switch_specific_max(), switch_specific_min(), switch_specific_mod(), switch_specific_nint(), switch_specific_sign(), switch_specific_sin(), switch_specific_sinh(), switch_specific_sqrt(), switch_specific_tan(), switch_specific_tanh(), SWPRINTF_FUNCTION_NAME, SWSCANF_FUNCTION_NAME, SYMLINK_FUNCTION_NAME, SYSTEM_FUNCTION_NAME, TAN_OPERATOR_NAME, TANF_OPERATOR_NAME, TANH_OPERATOR_NAME, TANHF_OPERATOR_NAME, TANHL_OPERATOR_NAME, TANL_OPERATOR_NAME, TEMPNAM_FUNCTION_NAME, TGAMMA_OPERATOR_NAME, TGAMMAF_OPERATOR_NAME, TIME_FUNCTION_NAME, TMPFILE64_FUNCTION_NAME, TMPFILE_FUNCTION_NAME, TMPNAM_FUNCTION_NAME, TOASCII_OPERATOR_NAME, TOLOWER_OPERATOR_NAME, TOUPPER_OPERATOR_NAME, TOWCTRANS_OPERATOR_NAME, TOWLOWER_OPERATOR_NAME, TOWUPPER_OPERATOR_NAME, TRUNC_OPERATOR_NAME, TRUNCF_OPERATOR_NAME, TRUNCL_OPERATOR_NAME, TTYNAME_FUNCTION_NAME, TTYSLOT_FUNCTION_NAME, typing_arithmetic_operator(), typing_assign_substring(), typing_buffer_inout(), typing_concat_operator(), typing_function_char_to_int(), typing_function_char_to_logical(), typing_function_complex_to_complex(), typing_function_complex_to_real(), typing_function_constant_complex(), typing_function_constant_dcomplex(), typing_function_conversion_to_complex(), typing_function_conversion_to_dcomplex(), typing_function_conversion_to_double(), typing_function_conversion_to_integer(), typing_function_conversion_to_real(), typing_function_dcomplex_to_dcomplex(), typing_function_dcomplex_to_double(), typing_function_double_to_double(), typing_function_double_to_int(), typing_function_double_to_longint(), typing_function_double_to_longlongint(), typing_function_format_name(), typing_function_int_to_char(), typing_function_int_to_int(), typing_function_int_to_logical(), typing_function_int_to_real(), typing_function_IntegerRealDouble_to_IntegerRealDouble(), typing_function_IntegerRealDoubleComplex_to_IntegerRealDoubleReal(), typing_function_longdcomplex_to_longdcomplex(), typing_function_longdcomplex_to_longdouble(), typing_function_longdouble_to_int(), typing_function_longdouble_to_longdouble(), typing_function_longdouble_to_longint(), typing_function_longdouble_to_longlongint(), typing_function_longint_to_longint(), typing_function_longlongint_to_longlongint(), typing_function_overloaded(), typing_function_real_to_double(), typing_function_real_to_int(), typing_function_real_to_longint(), typing_function_real_to_longlongint(), typing_function_real_to_real(), typing_function_RealDouble_to_Integer(), typing_function_RealDouble_to_RealDouble(), typing_function_RealDoubleComplex_to_RealDoubleComplex(), typing_implied_do(), typing_logical_operator(), typing_of_assign(), typing_power_operator(), typing_relational_operator(), typing_substring(), ULLTOSTR_FUNCTION_NAME, UNARY_MINUS_OPERATOR_NAME, UNARY_PLUS_OPERATOR_NAME, UNBOUNDED_DIMENSION_NAME, UNGETC_FUNCTION_NAME, UNGETWC_FUNCTION_NAME, UNLINK_FUNCTION_NAME, UNLOCKPT_FUNCTION_NAME, unsigned_integer_to_void_pointer_type(), USLEEP_FUNCTION_NAME, VALLOC_FUNCTION_NAME, VERR_FUNCTION_NAME, VERRX_FUNCTION_NAME, VFPRINTF_FUNCTION_NAME, VFSCANF_FUNCTION_NAME, VFWPRINTF_FUNCTION_NAME, VFWSCANF_FUNCTION_NAME, void_to_integer_type(), void_to_overloaded_type(), void_to_void_to_int_pointer_type(), void_to_void_type(), VPRINTF_FUNCTION_NAME, VSCANF_FUNCTION_NAME, VSNPRINTF_FUNCTION_NAME, VSPRINTF_FUNCTION_NAME, VSSCANF_FUNCTION_NAME, VSWPRINTF_FUNCTION_NAME, VSWSCANF_FUNCTION_NAME, VWARN_FUNCTION_NAME, VWARNX_FUNCTION_NAME, VWPRINTF_FUNCTION_NAME, VWSCANF_FUNCTION_NAME, WARN_FUNCTION_NAME, WARNX_FUNCTION_NAME, WCRTOMB_FUNCTION_NAME, WCSCAT_FUNCTION_NAME, WCSCHR_FUNCTION_NAME, WCSCMP_FUNCTION_NAME, WCSCOLL_FUNCTION_NAME, WCSCPY_FUNCTION_NAME, WCSCSPN_FUNCTION_NAME, WCSFTIME_FUNCTION_NAME, WCSLEN_FUNCTION_NAME, WCSNCAT_FUNCTION_NAME, WCSNCMP_FUNCTION_NAME, WCSNCPY_FUNCTION_NAME, WCSPBRK_FUNCTION_NAME, WCSRCHR_FUNCTION_NAME, WCSRTOMBS_FUNCTION_NAME, WCSSPN_FUNCTION_NAME, WCSSTR_FUNCTION_NAME, WCSTOD_FUNCTION_NAME, WCSTOF_FUNCTION_NAME, WCSTOK_FUNCTION_NAME, WCSTOL_FUNCTION_NAME, WCSTOLD_FUNCTION_NAME, WCSTOLL_FUNCTION_NAME, WCSTOMBS_FUNCTION_NAME, WCSTOUL_FUNCTION_NAME, WCSTOULL_FUNCTION_NAME, WCSXFRM_FUNCTION_NAME, WCTOB_FUNCTION_NAME, WCTOMB_FUNCTION_NAME, WCTRANS_OPERATOR_NAME, WCTYPE_OPERATOR_NAME, WMEMCHR_FUNCTION_NAME, WMEMCMP_FUNCTION_NAME, WMEMCPY_FUNCTION_NAME, WMEMMOVE_FUNCTION_NAME, WMEMSET_FUNCTION_NAME, WPRINTF_FUNCTION_NAME, WRITE_FUNCTION_NAME, WSCANF_FUNCTION_NAME, Y0_OPERATOR_NAME, Y1_OPERATOR_NAME, and YN_OPERATOR_NAME.
Referenced by bootstrap().
Create a default intrinsic.
Useful to create on-the-fly intrinsics.
It creates an intrinsic with a default type, that is with overload parameter and return types.
name | is the name of the intrinsic |
n | is the number of argument |
It seems it has been previously created:
name | ame |
arity | rity |
Definition at line 4397 of file bootstrap.c.
References default_intrinsic_type(), entity_undefined_p, FindEntity(), MakeIntrinsic(), and TOP_LEVEL_MODULE_NAME.
This function creates an entity that represents an intrinsic function, if the entity does not already exist.
Fortran operators and basic statements are intrinsic functions.
An intrinsic function has a rom storage, an unknown initial value and a functional type whose result and arguments have an overloaded basic type. The number of arguments is given by the IntrinsicTypeDescriptorTable data structure.
name | ame |
arity | rity |
Definition at line 4371 of file bootstrap.c.
References entity_undefined_p, FindEntity(), MakeIntrinsic(), and TOP_LEVEL_MODULE_NAME.
Referenced by register_intrinsic_type_descriptor().
switch_name_function get_switch_name_function_for_intrinsic | ( | const char * | name | ) |
name | ame |
Definition at line 4338 of file bootstrap.c.
References hash_get(), and intrinsic_type_descriptor_mapping.
Referenced by type_this_call().
typing_function_t get_typing_function_for_intrinsic | ( | const char * | name | ) |
name | ame |
Definition at line 4330 of file bootstrap.c.
References hash_get(), and intrinsic_type_descriptor_mapping.
Referenced by type_this_call(), and type_this_instruction().
expression insert_cast | ( | basic | cast, |
basic | from, | ||
expression | exp, | ||
type_context_p | context | ||
) |
Function in type_checker.c.
If exp is a constant -> Convert it e.g: 5.9 -> 5 (REAL -> INT)
If not
Count the number of conversions
from | rom |
exp | xp |
context | ontext |
Definition at line 1567 of file bootstrap.c.
References cast_constant(), CONS, entity_undefined, exp, EXPRESSION, expression_syntax, get_cast_function_for_basic(), is_syntax_call, make_call(), make_expression(), make_syntax(), NIL, normalized_undefined, and pips_internal_error.
Referenced by check_this_reference(), type_loop_range(), type_this_entity_if_needed(), typing_arguments(), typing_of_assign(), and typing_power_operator().
Definition at line 4222 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeIntegerParameter(), MakeOverloadedResult(), NIL, and type_undefined.
Referenced by CreateIntrinsics().
Definition at line 4264 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), make_type_void(), MakeIntegerParameter(), NIL, and type_undefined.
Referenced by CreateIntrinsics().
MB.
Definition at line 4236 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeLongIntegerParameter(), MakeOverloadedResult(), NIL, and type_undefined.
Referenced by CreateIntrinsics().
MB.
Definition at line 4250 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeLongLongIntegerParameter(), MakeOverloadedResult(), NIL, and type_undefined.
Referenced by CreateIntrinsics().
string MakeFileName | ( | char * | prefix, |
char * | base, | ||
char * | suffix | ||
) |
prefix | refix |
base | ase |
suffix | uffix |
Definition at line 5687 of file bootstrap.c.
References base, malloc(), and prefix.
This array is pointed by FILE * pointers returned or used by fopen, fclose,...
. The argument f must be the intrinsic fopen returning a FILE * or another function also returning a FILE *. So we do not have to synthesize the type FILE.
FI: this initialization is usually performed in bootstrap.c, but it is easier to do it here because the IO_FILE type does not have to be built from scratch.
Definition at line 5705 of file bootstrap.c.
References CONS, copy_type(), DIMENSION, ENDP, entity_initial, entity_storage, entity_type, f(), FindEntity(), FindOrCreateEntity(), functional_result, int_to_expression(), IO_EFFECTS_IO_FILE_NAME, IO_EFFECTS_PACKAGE_NAME, is_storage_ram, is_value_unknown, make_dimension(), make_ram(), make_storage(), make_value(), NIL, pips_assert, STATIC_AREA_LOCAL_NAME, TOP_LEVEL_MODULE_NAME, type_functional, type_to_pointed_type(), type_undefined_p, type_variable, UU, and variable_dimensions.
Referenced by binary_intrinsic_call_to_points_to_sinks(), and create_stub_points_to().
value MakeValueLitteral | ( | void | ) |
Definition at line 5680 of file bootstrap.c.
References is_constant_litteral, is_value_constant, make_constant(), make_value(), and UU.
Referenced by EvalConstant().
parameter MakeVoidParameter | ( | void | ) |
Definition at line 4199 of file bootstrap.c.
References is_mode_reference, is_type_void, make_dummy_unknown(), make_mode(), make_parameter(), make_type(), and UU.
Referenced by __attribute__(), and void_to_integer_type().
type MakeVoidResult | ( | void | ) |
Move the following functions to ri-util/type.c.
Definition at line 4193 of file bootstrap.c.
References is_type_void, make_type(), and UU.
Referenced by overloaded_to_void_type().
Definition at line 4292 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeOverloadedParameter(), MakeVoidResult(), NIL, and type_undefined.
Referenced by CreateIntrinsics().
Definition at line 4208 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeOverloadedResult(), MakePointerParameter(), NIL, and type_undefined.
void register_intrinsic_type_descriptor | ( | IntrinsicDescriptor * | p | ) |
This function is called one time (at the very beginning) to create all intrinsic functions.
Definition at line 4411 of file bootstrap.c.
References FindOrMakeIntrinsic(), hash_put(), IntrinsicDescriptor::intrinsic_type, intrinsic_type_descriptor_mapping, IntrinsicDescriptor::name, and IntrinsicDescriptor::nbargs.
Referenced by CreateIntrinsics(), and step_analyse_init().
bool type_checker | ( | const | string | ) |
Used to check the language
string | ame |
Definition at line 548 of file type_checker.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, module_name_to_entity(), pips_debug, reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), and typing_of_expressions().
void type_loop_range | ( | basic | index, |
range | r, | ||
type_context_p | context | ||
) |
index | ndex |
context | ontext |
Definition at line 1038 of file bootstrap.c.
References basic_equal_p(), GET_TYPE, insert_cast(), range_increment, range_lower, and range_upper.
Referenced by check_this_loop(), and typing_implied_do().
Bottom-up typing
Summary
Type checking ...
name | ame |
Definition at line 526 of file type_checker.c.
References free_basic(), HASH_MAP, hash_pointer, hash_table_free(), hash_table_make(), put_summary(), stack_free(), stack_make(), statement_domain, context::stats, and type_this_chunk().
Referenced by type_checker().
Definition at line 4306 of file bootstrap.c.
References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeIntegerResult(), MakeVoidParameter(), NIL, and type_undefined.
Referenced by CreateIntrinsics().