26 #include "pips_config.h"
1122 l_in_cur = pv_res1.
l_out;
1168 bool pointer_arithmetic =
false;
1172 if ((pointer_t1 || array_t1) && !(pointer_t2 || array_t2))
1175 pointer_arithmetic =
true;
1176 l_eff_pointer = l_eff1;
1180 else if ((pointer_t2 || array_t2) && !(pointer_t1 || array_t1))
1182 pointer_arithmetic =
true;
1183 l_eff_pointer = l_eff2;
1190 if (pointer_arithmetic)
1224 (*effect_add_expression_dimension_func)(new_eff, new_arg);
1236 (*effect_change_ith_dimension_expression_func)(new_eff, new_arg, (
int)
gen_length(l_inds));
1238 l_new_eff =
CONS(
EFFECT, new_eff, l_new_eff);
1247 pips_debug(3,
"several dimensions (%d) case\n", nb_dims);
1255 for(
int i = 1; i <= nb_dims; i++) {
1259 (*effect_add_expression_dimension_func)(new_eff,
copy_expression(new_ind));
1261 l_new_eff =
CONS(
EFFECT, new_eff, l_new_eff);
1289 pips_assert(
"unary arithmetic operators should not have pointer arguments",
1298 pips_debug(1,
"begin for update operator\n");
1312 pips_assert(
"update operators admit a single path\n",
1342 (*effect_add_expression_dimension_func)(rhs_eff, new_dim);
1348 l_in_cur, pv_res, ctxt);
1386 pips_debug(1,
"begin for conditional operator\n");
1500 bool free_general_args =
false;
1501 list l_in_cur = l_in;
1522 general_args =
CDR(func_args);
1538 free_general_args =
true;
1545 if (free_general_args)
1668 if (!
ENDP(l_heap_eff))
1682 false, l_in, pv_res, ctxt);
1686 if (l_in != pv_res->
l_out)
1689 l_in = pv_res->
l_out;
1692 "undefined value to freed pointer:\n",
1706 l_in= pv_res->
l_out;
1722 false, l_in, pv_res, ctxt);
1726 if (l_in != pv_res->
l_out)
1729 l_in = pv_res->
l_out;
1732 "undefined value to freed pointer:\n",
1745 bool free_malloc_arg =
false;
1746 list l_in_cur = l_in;
1757 if (pv_res_arg.
l_out != l_in_cur)
1760 l_in_cur = pv_res_arg.
l_out;
1763 l_in_cur = pv_res->
l_out;
1777 free_malloc_arg =
true;
1793 free_malloc_arg =
true;
1803 if (pv_res_arg.
l_out != l_in_cur)
1806 l_in_cur = pv_res_arg.
l_out;
1833 if (free_malloc_arg)
1837 pv_res->
l_out = l_in_cur;
1860 if (!
ENDP(func_args))
1878 if (!
ENDP(func_args))
1881 list l_in_cur = l_in;
1887 if (pv_res_arg.
l_out != l_in_cur)
1890 l_in_cur = pv_res_arg.
l_out;
1906 bool to_be_freed =
false;
1911 l_anywhere_eff, l_rhs_kind,
1914 if (pv_res->
l_out != l_in_cur)
1917 l_in_cur = pv_res->
l_out;
1923 pv_res->
l_out = l_in_cur;
1926 pv_res->
l_out = l_in;
1942 pv_res->
l_out = l_in;
1958 list l_in_cur = l_in;
1964 l_in_cur = pv_res->
l_out;
1977 while (pid->
name != NULL)
1979 if (strcmp(pid->
name, func_name) == 0)
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
cell make_cell_reference(reference _field_)
cell_interpretation make_cell_interpretation_value_of(void)
cell_interpretation make_cell_interpretation_address_of(void)
approximation make_approximation_exact(void)
approximation copy_approximation(approximation p)
APPROXIMATION.
approximation make_approximation_may(void)
effect make_effect(cell a1, action a2, approximation a3, descriptor a4)
cell_relation copy_cell_relation(cell_relation p)
CELL_RELATION.
effect copy_effect(effect p)
EFFECT.
descriptor make_descriptor_none(void)
cell copy_cell(cell p)
CELL.
expression copy_expression(expression p)
EXPRESSION.
reference make_reference(entity a1, list a2)
void free_expression(expression p)
sensitivity_information make_sensitivity_information(statement current_stmt, entity current_module, list enclosing_flow)
entity malloc_to_abstract_location(expression malloc_exp, sensitivity_information *psi)
generate an abstract heap location entity
bool entity_flow_or_context_sentitive_heap_location_p(entity e)
bool entity_all_module_heap_locations_p(entity e)
test if an entity is the a heap area
bool entity_all_heap_locations_p(entity e)
test if an entity is the set of all heap locations
void const char const char const int
#define pips_debug_effects(level, message, l_eff)
#define pips_debug_effect(level, message, eff)
for debug
void effects_to_may_effects(list)
effect make_anywhere_effect(action)
void effect_add_dereferencing_dimension(effect)
void effect_to_may_effect(effect)
list c_actual_argument_to_may_summary_effects(expression, tag)
void effect_add_field_dimension(effect, entity)
#define effect_may_p(eff)
#define effect_any_reference(e)
FI: cannot be used as a left hand side.
#define pips_debug_pv(level, message, pv)
#define cell_relation_second_cell(cr)
#define pips_debug_pvs(level, message, l_pv)
#define cell_relation_exact_p(cr)
#define cell_relation_first_cell(cr)
type cell_to_type(cell, bool *)
entity effect_entity(effect)
cproto-generated files
action make_action_write_memory(void)
To ease the extension of action with action_kind.
bool anywhere_effect_p(effect)
Is it an anywhere effect? ANYMMODULE:ANYWHERE
cell make_undefined_pointer_value_cell(void)
#define cell_reference(x)
#define CELL_RELATION(x)
CELL_RELATION.
#define cell_undefined_p(x)
#define cell_interpretation_tag(x)
@ is_cell_interpretation_address_of
@ is_cell_interpretation_value_of
#define cell_relation_undefined
#define cell_interpretation_value_of_p(x)
#define effect_approximation(x)
#define CELL_INTERPRETATION(x)
CELL_INTERPRETATION.
string make_entity_fullname(const char *module_name, const char *local_name)
END_EOLE.
void gen_full_free_list(list l)
entity get_current_module_entity(void)
Get the entity of the current module.
#define ENDP(l)
Test if a list is empty.
list gen_nreverse(list cp)
reverse a list in place
#define POP(l)
Modify a list pointer to point on the next element of the list.
#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)
list gen_nconc(list cp1, list cp2)
physically concatenates CP1 and CP2 but do not duplicates the elements
#define CAR(pcons)
Get the value of the first element of a list.
void gen_free_list(list l)
free the spine of the list
list gen_last(list l)
Return the last 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.
list gen_full_copy_list(list l)
Copy a list structure with element copy.
#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 LIST_DIRECTED_FORMAT_NAME
#define TOP_LEVEL_MODULE_NAME
Module containing the global variables in Fortran and C.
#define same_string_p(s1, s2)
void * gen_find_tabulated(const char *, int)
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
#define pips_debug_pv_results(level, message, pv_res)
void pointer_values_remove_var(entity, bool, list, pv_results *, pv_context *)
pv_results make_pv_results(void)
void assignment_to_post_pv(expression, bool, expression, bool, list, pv_results *, pv_context *)
void expression_to_post_pv(expression, list, pv_results *, pv_context *)
void single_pointer_assignment_to_post_pv(effect, list, list, bool, list, pv_results *, pv_context *)
void free_pv_results_paths(pv_results *)
list effect_find_equivalent_pointer_values(effect, list, cell_relation *, list *)
find pointer_values in l_in which give (possible or exact) paths equivalent to eff.
statement pv_context_statement_head(pv_context *)
static void intrinsic_to_identical_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void default_intrinsic_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void address_of_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void unknown_intrinsic_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void string_function_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void heap_intrinsic_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static IntrinsicToPostPVDescriptor IntrinsicToPostPVDescriptorTable[]
static void unix_io_function_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void assignment_intrinsic_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void unary_arithmetic_operator_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void safe_intrinsic_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void c_io_function_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void va_list_function_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void conditional_operator_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void field_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
struct IntrinsicDescriptor IntrinsicToPostPVDescriptor
the following data structure describes an intrinsic function: its name and the function to apply on a...
static void update_operator_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void logical_operator_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void free_to_post_pv(list l_free_eff, list l_in, pv_results *pv_res, pv_context *ctxt)
static void binary_arithmetic_operator_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void c_return_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
static void point_to_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
void intrinsic_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
pointer_values_intrinsics.c
static void dereferencing_to_post_pv(entity func, list func_args, list l_in, pv_results *pv_res, pv_context *ctxt)
string string_of_type(const type)
#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 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 TGAMMAL_OPERATOR_NAME
#define BUILTIN_VA_END
vararg stuff.
#define SRAND_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 CPROJ_OPERATOR_NAME
#define WCSTOMBS_FUNCTION_NAME
#define FGETC_FUNCTION_NAME
#define LOG1P_OPERATOR_NAME
#define STRLEN_FUNCTION_NAME
#define TOWUPPER_OPERATOR_NAME
#define POST_DECREMENT_OPERATOR_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 FDATASYNC_FUNCTION_NAME
#define IDNINT_CONVERSION_NAME
#define FWRITE_FUNCTION_NAME
#define MBTOWC_FUNCTION_NAME
#define FLOAT_GENERIC_CONVERSION_NAME
#define ISOC99_VFSCANF_FUNCTION_NAME
#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 NANL_OPERATOR_NAME
#define SEED48_FUNCTION_NAME
#define TANH_OPERATOR_NAME
#define REMAINDERF_OPERATOR_NAME
#define IMAXDIV_FUNCTION_NAME
#define FMINF_OPERATOR_NAME
#define STRCMP_FUNCTION_NAME
#define CACOSH_OPERATOR_NAME
#define NEARBYINTF_OPERATOR_NAME
#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 COPYSIGNF_OPERATOR_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 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 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 LLROUNDF_OPERATOR_NAME
#define NEXTTOWARDF_OPERATOR_NAME
#define DBLE_GENERIC_CONVERSION_NAME
#define SYSTEM_FUNCTION_NAME
#define FEGETROUND_FUNCTION_NAME
#define SUBSTRING_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 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 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 C_CCOS_OPERATOR_NAME
#define SSCANF_FUNCTION_NAME
#define SINF_OPERATOR_NAME
#define C_MODULO_OPERATOR_NAME
#define ISDIGIT_OPERATOR_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 C_COSH_OPERATOR_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 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 CCOSH_OPERATOR_NAME
#define CLOG_OPERATOR_NAME
#define VSSCANF_FUNCTION_NAME
#define DINT_CONVERSION_NAME
#define IABS_OPERATOR_NAME
#define FLOORF_OPERATOR_NAME
#define ERRX_FUNCTION_NAME
#define EQUIV_OPERATOR_NAME
#define STRTOL_FUNCTION_NAME
#define CLOGF_OPERATOR_NAME
#define NRAND48_FUNCTION_NAME
#define SCALBLNL_OPERATOR_NAME
#define CTAN_OPERATOR_NAME
#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 USLEEP_FUNCTION_NAME
#define STRCHR_FUNCTION_NAME
#define MODF_OPERATOR_NAME
#define GETOPT_FUNCTION_NAME
#define CBRT_OPERATOR_NAME
#define ATOLL_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 LOG2F_OPERATOR_NAME
#define SIGNAL_OPERATOR_NAME
signal.h
#define STRTOK_FUNCTION_NAME
#define DCOSH_OPERATOR_NAME
#define DIM_OPERATOR_NAME
#define LOCALTIME_FUNCTION_NAME
#define IOCTL_FUNCTION_NAME
#define EXPF_OPERATOR_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 STRRCHR_FUNCTION_NAME
#define STRNCAT_FUNCTION_NAME
#define QGCONVERT_OPERATOR_NAME
#define FETESTEXCEPT_FUNCTION_NAME
#define FMODL_OPERATOR_NAME
#define REMAINDER_OPERATOR_NAME
#define WARN_FUNCTION_NAME
#define MEMCMP_FUNCTION_NAME
#define FMIN_OPERATOR_NAME
#define C_CSQRT_OPERATOR_NAME
#define ISWUPPER_OPERATOR_NAME
#define LROUNDL_OPERATOR_NAME
#define ATANHL_OPERATOR_NAME
#define FDOPEN_FUNCTION_NAME
#define EXPM1_OPERATOR_NAME
#define CREALL_OPERATOR_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 AMIN0_OPERATOR_NAME
#define SETLOCALE_FUNCTION_NAME
include <locale.h>
#define PSELECT_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 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 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 FIELD_OPERATOR_NAME
#define SFCONVERT_OPERATOR_NAME
#define ROUNDF_OPERATOR_NAME
#define HYPOT_OPERATOR_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 IMS_OPERATOR_NAME
#define FMINL_OPERATOR_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 STRXFRM_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 LOGBL_OPERATOR_NAME
#define C_SIN_OPERATOR_NAME
#define AMAX0_OPERATOR_NAME
#define VFSCANF_FUNCTION_NAME
#define CCOSL_OPERATOR_NAME
#define FFLUSH_FUNCTION_NAME
#define STRDUP_FUNCTION_NAME
#define ROUNDL_OPERATOR_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 IFIX_GENERIC_CONVERSION_NAME
#define FREE_FUNCTION_NAME
#define ACOS_OPERATOR_NAME
#define EXPM1F_OPERATOR_NAME
#define FPRINTF_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 ISHFTC_OPERATOR_NAME
#define TMPFILE_FUNCTION_NAME
#define C_ABS_FUNCTION_NAME
#define ISNAN_OPERATOR_NAME
#define FCVT_FUNCTION_NAME
#define ABORT_FUNCTION_NAME
#define CREAL_OPERATOR_NAME
#define INVERSE_OPERATOR_NAME
#define ERFF_OPERATOR_NAME
#define LEFT_SHIFT_OPERATOR_NAME
#define ISXDIGIT_OPERATOR_NAME
#define CONDITIONAL_OPERATOR_NAME
#define BREAK_FUNCTION_NAME
#define CPOWF_OPERATOR_NAME
#define SCALBLNF_OPERATOR_NAME
#define ALOG10_OPERATOR_NAME
#define FMODF_OPERATOR_NAME
#define EXTENDED_TO_DECIMAL_OPERATOR_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 BUFFEROUT_FUNCTION_NAME
#define CCOS_OPERATOR_NAME
#define ROUND_OPERATOR_NAME
#define C_LOC_FUNCTION_NAME
F2003.
#define ISGRAPH_OPERATOR_NAME
#define LCONG48_FUNCTION_NAME
#define DPROD_OPERATOR_NAME
#define GETENV_FUNCTION_NAME
#define CUSERID_FUNCTION_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 ANINT_CONVERSION_NAME
#define REMOVE_FUNCTION_NAME
#define CPROJF_OPERATOR_NAME
#define TRUNCL_OPERATOR_NAME
#define SIGNBIT_OPERATOR_NAME
#define C_NOT_OPERATOR_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 GCONVERT_OPERATOR_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 __FILSBUF_FUNCTION_NAME
#define STRTOD_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 COPYSIGN_OPERATOR_NAME
#define CSINH_OPERATOR_NAME
#define NEXTAFTERL_OPERATOR_NAME
#define COSHF_OPERATOR_NAME
#define COSL_OPERATOR_NAME
#define ADDRESS_OF_OPERATOR_NAME
#define CMPLX_GENERIC_CONVERSION_NAME
#define FABSF_OPERATOR_NAME
#define DOUBLE_TO_DECIMAL_OPERATOR_NAME
#define ATOL_FUNCTION_NAME
#define C_ATAN2_OPERATOR_NAME
#define PRE_DECREMENT_OPERATOR_NAME
#define CHAR_TO_INT_CONVERSION_NAME
#define FCNTL_FUNCTION_NAME
include <fcntl.h>
#define SQRT_OPERATOR_NAME
#define ATAN_OPERATOR_NAME
#define ATANHF_OPERATOR_NAME
#define ERFL_OPERATOR_NAME
#define ISIGN_OPERATOR_NAME
#define C_CEXP_OPERATOR_NAME
#define STRTOULL_FUNCTION_NAME
#define TGAMMA_OPERATOR_NAME
#define UNGETC_FUNCTION_NAME
#define STRPBRK_FUNCTION_NAME
#define SRAND48_FUNCTION_NAME
#define QUADRUPLE_TO_DECIMAL_OPERATOR_NAME
#define INT_GENERIC_CONVERSION_NAME
generic conversion names.
#define C_ATAN_OPERATOR_NAME
#define EXP2F_OPERATOR_NAME
#define SELECT_FUNCTION_NAME
#define C_CLOSE_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 CLOSE_FUNCTION_NAME
#define FABS_OPERATOR_NAME
#define STRCOLL_FUNCTION_NAME
#define UNARY_MINUS_OPERATOR_NAME
#define AMIN1_OPERATOR_NAME
#define LROUNDF_OPERATOR_NAME
#define _IO_PUTC_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 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 EXP_OPERATOR_NAME
#define ERAND48_FUNCTION_NAME
#define FMA_OPERATOR_NAME
#define EOLE_PROD_OPERATOR_NAME
#define VSCANF_FUNCTION_NAME
#define HYPOTF_OPERATOR_NAME
#define IBCLR_OPERATOR_NAME
#define CTANH_OPERATOR_NAME
#define PCLOSE_FUNCTION_NAME
#define SRANDOM_FUNCTION_NAME
#define LDIV_FUNCTION_NAME
#define FSEEKO64_FUNCTION_NAME
#define ATAN2L_OPERATOR_NAME
#define C_LOG_OPERATOR_NAME
#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 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 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 FPUTC_FUNCTION_NAME
#define CEXPL_OPERATOR_NAME
#define SETBUF_FUNCTION_NAME
#define C_CSIN_OPERATOR_NAME
#define POST_INCREMENT_OPERATOR_NAME
#define TMPNAM_FUNCTION_NAME
#define DSINH_OPERATOR_NAME
#define SIGFPE_OPERATOR_NAME
#define IAND_OPERATOR_NAME
#define ISWCNTRL_OPERATOR_NAME
#define AIMAG_CONVERSION_NAME
#define EXIT_FUNCTION_NAME
#define PLUS_UPDATE_OPERATOR_NAME
#define CONJ_OPERATOR_NAME
#define SIGNIFICAND_OPERATOR_NAME
#define LSTAT_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 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 DDIM_OPERATOR_NAME
#define TANHF_OPERATOR_NAME
#define FGETPOS64_FUNCTION_NAME
#define SINH_OPERATOR_NAME
#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 DFLOAT_GENERIC_CONVERSION_NAME
#define SQRTL_OPERATOR_NAME
#define FERROR_FUNCTION_NAME
#define TANHL_OPERATOR_NAME
#define SYMLINK_FUNCTION_NAME
#define ULLTOSTR_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 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 IMPLIED_COMPLEX_NAME
#define FSCANF_FUNCTION_NAME
#define FCONVERT_OPERATOR_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 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 FPUTS_FUNCTION_NAME
#define PLUS_C_OPERATOR_NAME
#define FCLOSE_FUNCTION_NAME
#define ALOG_OPERATOR_NAME
#define FMAXL_OPERATOR_NAME
#define FREXP_OPERATOR_NAME
#define FSETPOS_FUNCTION_NAME
#define MIN_OPERATOR_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
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...
bool same_entity_p(entity e1, entity e2)
predicates on entities
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
expression make_unbounded_expression()
expression MakeBinaryCall(entity f, expression eg, expression ed)
Creates a call expression to a function with 2 arguments.
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
expression make_op_exp(char *op_name, expression exp1, expression exp2)
================================================================
expression MakeUnaryCall(entity f, expression a)
Creates a call expression to a function with one argument.
type expression_to_type(expression)
For an array declared as int a[10][20], the type returned for a[i] is int [20].
bool entity_scalar_p(entity)
The concrete type of e is a scalar type.
bool pointer_type_p(type)
Check for scalar pointers.
string type_to_string(const type)
type.c
#define syntax_reference_p(x)
#define syntax_reference(x)
#define reference_variable(x)
#define EXPRESSION(x)
EXPRESSION.
#define expression_undefined
#define reference_indices(x)
#define expression_undefined_p(x)
#define variable_dimensions(x)
#define expression_syntax(x)
#define entity_domain
newgen_syntax_domain_defined
The following data structure describes an intrinsic function: its name and its arity and its type,...
void(* to_post_pv_function)()
The structure used to build lists in NewGen.
pv_context is a structure holding the methods to use during pointer values analyses
list(* pvs_may_union_func)(list, list)
pv_results is a structure holding the different results of an expression pointer values analysis
list result_paths_interpretations
resulting pointer path of the expression evaluation
list result_paths
resulting pointer_values