PIPS
bootstrap.h File Reference
+ This graph shows which files directly or indirectly include this file:

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_ttype_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...
 

Functions

void CreateAreas (void)
 cproto-generated files More...
 
void type_loop_range (basic, range, type_context_p)
 
call convert_constant (call, basic)
 
expression cast_constant (expression, basic, type_context_p)
 
expression insert_cast (basic cast, basic, expression, type_context_p)
 Function in type_checker.c. More...
 
bool arguments_are_compatible (call, hash_table)
 
type MakeVoidResult (void)
 Move the following functions to ri-util/type.c. More...
 
parameter MakeVoidParameter (void)
 
type pointer_to_overloaded_type (int)
 
type integer_to_overloaded_type (int)
 
type longinteger_to_overloaded_type (int)
 MB. More...
 
type longlonginteger_to_overloaded_type (int)
 MB. More...
 
type integer_to_void_type (int)
 
type void_to_overloaded_type (int)
 
type overloaded_to_void_type (int)
 
type void_to_integer_type (int)
 
typing_function_t get_typing_function_for_intrinsic (const char *)
 
switch_name_function get_switch_name_function_for_intrinsic (const char *)
 
entity FindOrMakeIntrinsic (string, int, type(*)(int))
 This function creates an entity that represents an intrinsic function, if the entity does not already exist. More...
 
entity FindOrMakeDefaultIntrinsic (string, int)
 Create a default intrinsic. More...
 
void register_intrinsic_type_descriptor (IntrinsicDescriptor *)
 This function is called one time (at the very beginning) to create all intrinsic functions. More...
 
void CreateIntrinsics (set)
 
bool bootstrap (string)
 
value MakeValueLitteral (void)
 
string MakeFileName (char *, char *, char *)
 
entity MakeIoFileArray (entity)
 This array is pointed by FILE * pointers returned or used by fopen, fclose,... More...
 
bool check_loop_range (range, hash_table)
 type_checker.c More...
 
void typing_of_expressions (string, statement)
 
bool type_checker (const string)
 

Macro Definition Documentation

◆ COMPLEX_LENGTH

#define COMPLEX_LENGTH   8

Definition at line 37 of file bootstrap.h.

◆ DCOMPLEX_LENGTH

#define DCOMPLEX_LENGTH   16

Definition at line 38 of file bootstrap.h.

◆ DOUBLE_LENGTH

#define DOUBLE_LENGTH   8

Definition at line 36 of file bootstrap.h.

◆ INT_LENGTH

#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.

◆ REAL_LENGTH

#define REAL_LENGTH   4

Definition at line 35 of file bootstrap.h.

Typedef Documentation

◆ 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.

◆ switch_name_function

typedef void(* switch_name_function) (expression, type_context_p)

Definition at line 52 of file bootstrap.h.

◆ type_context_p

typedef struct type_context_t * type_context_p

◆ typing_function_t

typedef basic(* typing_function_t) (call, type_context_p)

Definition at line 50 of file bootstrap.h.

Function Documentation

◆ arguments_are_compatible()

bool arguments_are_compatible ( call  c,
hash_table  types 
)

First item

Next item

Parameters
typesypes

Definition at line 1965 of file bootstrap.c.

1966 {
1967  basic b1, b2;
1968  b1 = basic_undefined;
1969 
1970  MAP(EXPRESSION, e,
1971  {
1972  /* First item */
1973  if(basic_undefined_p(b1))
1974  {
1975  b1 = GET_TYPE(types, e);
1976  }
1977  /* Next item */
1978  else
1979  {
1980  b2 = GET_TYPE(types, e);
1981  if(!basic_compatible_p(b1, b2))
1982  {
1983  return false;
1984  }
1985  }
1986  }
1987  , call_arguments(c));
1988 
1989  return true;
1990 }
#define GET_TYPE(h, e)
Working with hash_table of basic.
Definition: bootstrap.c:89
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
Definition: newgen_list.h:226
#define basic_compatible_p(b1, b2)
#define basic_undefined_p(x)
Definition: ri.h:557
#define EXPRESSION(x)
EXPRESSION.
Definition: ri.h:1217
#define basic_undefined
Definition: ri.h:556
#define call_arguments(x)
Definition: ri.h:711
Value b2
Definition: sc_gram.c:105
Value b1
booleen indiquant quel membre est en cours d'analyse
Definition: sc_gram.c:105

References b1, b2, basic_compatible_p, basic_undefined, basic_undefined_p, call_arguments, EXPRESSION, GET_TYPE, and MAP.

Referenced by typing_of_assign().

+ Here is the caller graph for this function:

◆ bootstrap()

bool bootstrap ( string  workspace)

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

Parameters
workspaceorkspace

Definition at line 5619 of file bootstrap.c.

5620 {
5621  pips_debug(1, "bootstraping in workspace %s\n", workspace);
5622 
5623  if (db_resource_p(DBR_ENTITIES, ""))
5624  pips_internal_error("entities already initialized");
5625 
5626  /* Create all intrinsics, skipping user-defined one */
5627  set module_list = set_make(set_string);
5629  for(int i=0; i < (int) gen_array_nitems(ml); i++)
5630  set_add_element(module_list, module_list, (char*)gen_array_item(ml,i));
5631  CreateIntrinsics(module_list);
5632  set_free(module_list);
5633  gen_array_free(ml);
5634 
5635  /* Creates the dynamic and static areas for the super global
5636  * arrays such as the logical unit array (see below).
5637  */
5638  CreateAreas();
5639 
5640  /* The current entity is unknown, but for a TOP-LEVEL:TOP-LEVEL
5641  * which is used to create the logical unit array for IO effects
5642  */
5644 
5645  /* create hidden variables to modelize the abstract states defined by the libc:
5646 
5647  seed for random function package
5648 
5649  heap abstract state
5650  */
5651  CreateRandomSeed();
5652  CreateTimeSeed();
5654  /* Create hidden variable to modelize the abstract state of :
5655  temporary arry for memmove function. Molka Becher
5656  */
5658 
5659  /* Create the empty label */
5662  LABEL_PREFIX,
5663  NULL)),
5665  make_storage_rom(),
5669 
5670  /* FI: I suppress the owner filed to make the database moveable */
5671  /* FC: the content must be consistent with pipsdbm/methods.h */
5672  DB_PUT_MEMORY_RESOURCE(DBR_ENTITIES, "", (char*) entity_domain);
5673 
5674  pips_debug(1, "bootstraping done\n");
5675 
5676  return true;
5677 }
storage make_storage_rom(void)
Definition: ri.c:2285
value make_value(enum value_utype tag, void *val)
Definition: ri.c:2832
constant make_constant_litteral(void)
Definition: ri.c:418
bool db_resource_p(const char *rname, const char *oname)
true if exists and in loaded or stored state.
Definition: database.c:524
void const char const char const int
size_t gen_array_nitems(const gen_array_t a)
Definition: array.c:131
void * gen_array_item(const gen_array_t a, size_t i)
Definition: array.c:143
void gen_array_free(gen_array_t a)
Definition: array.c:70
void CreateAreas()
cproto-generated files
Definition: bootstrap.c:104
static void CreateRandomSeed()
Definition: bootstrap.c:292
void CreateIntrinsics(set module_list)
Definition: bootstrap.c:4417
static void CreateHeapAbstractState()
Definition: bootstrap.c:310
static void CreateMemmoveAbstractState()
Definition: bootstrap.c:319
static void CreateTimeSeed()
Definition: bootstrap.c:300
static void CreateLogicalUnits()
Definition: bootstrap.c:122
gen_array_t db_get_module_list(void)
Get an array of all the modules (functions, procedures and compilation units) of a workspace.
Definition: database.c:1266
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
Definition: pipsdbm-local.h:66
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
Definition: misc-local.h:145
#define pips_internal_error
Definition: misc-local.h:149
#define LABEL_PREFIX
Definition: naming-local.h:31
#define TOP_LEVEL_MODULE_NAME
Module containing the global variables in Fortran and C.
Definition: naming-local.h:101
#define MODULE_SEP_STRING
Definition: naming-local.h:30
string concatenate(const char *,...)
Return the concatenation of the given strings.
Definition: string.c:183
void set_free(set)
Definition: set.c:332
@ set_string
Definition: newgen_set.h:42
set set_make(set_type)
Create an empty set of any type but hash_private.
Definition: set.c:102
set set_add_element(set, const set, const void *)
Definition: set.c:152
#define make_entity(n, t, s, i)
@ DEFAULT_ENTITY_KIND
type MakeTypeStatement(void)
Definition: type.c:92
@ is_value_constant
Definition: ri.h:3033
#define entity_domain
newgen_syntax_domain_defined
Definition: ri.h:410
char * strdup()
FI: I do not understand why the type is duplicated at the set level.
Definition: set.c:59

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cast_constant()

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

Parameters
exp_constantxp_constant
to_basico_basic
contextontext

Definition at line 1343 of file bootstrap.c.

1344 {
1345  entity function_called;
1346  call c;
1347  basic b = NULL;
1348  expression exp, exp_real, exp_imag, exp_real2, exp_imag2;
1349  syntax s = expression_syntax(exp_constant);
1350  if(syntax_call_p(s))
1351  {
1352  function_called = call_function(syntax_call(s));
1353  if(entity_constant_p(function_called))
1354  {
1355  /* Convert if necessary */
1356  c = convert_constant(syntax_call(s), to_basic);
1357  if (c != NULL)
1358  {
1359  context->number_of_simplication++;
1362  }
1363  }
1364  else if(ENTITY_UNARY_MINUS_P(function_called))
1365  {
1367  to_basic, context);
1368  if (exp != NULL)
1369  {
1370  c = make_call(copy_entity(function_called),
1371  CONS(EXPRESSION, exp, NIL));
1374  }
1375  }
1376  else if(ENTITY_IMPLIED_CMPLX_P(function_called) ||
1377  ENTITY_CONVERSION_CMPLX_P(function_called) ||
1378  ENTITY_IMPLIED_DCMPLX_P(function_called) ||
1379  ENTITY_CONVERSION_DCMPLX_P(function_called))
1380  {
1381  exp_real = EXPRESSION(CAR(call_arguments(syntax_call(s))));
1382  /* Two arguments, with imagine party */
1383  if (CDR(call_arguments(syntax_call(s))) != NIL )
1384  {
1385  exp_imag = EXPRESSION(CAR(CDR(call_arguments(syntax_call(s)))));
1386  }
1387  /* One argument, no imagine party */
1388  else
1389  {
1390  exp_imag = NULL;
1391  }
1392  if (!basic_complex_p(to_basic))
1393  {
1394  return cast_constant(exp_real, to_basic, context);
1395  }
1396  /* DCOMPLEX -> COMPLEX */
1397  else if (basic_complex(to_basic) == 8 &&
1398  (ENTITY_IMPLIED_DCMPLX_P(function_called) ||
1399  ENTITY_CONVERSION_DCMPLX_P(function_called)))
1400  {
1401  b = make_basic_float(4);
1402  if ((exp_real2 = cast_constant(exp_real, b, context)) == NULL)
1403  {
1404  exp_real2 = exp_real;
1405  }
1406 
1407  if (exp_imag != NULL)
1408  {
1409  if ((exp_imag2 = cast_constant(exp_imag, b, context)) == NULL)
1410  {
1411  exp_imag2 = exp_imag;
1412  }
1413  }
1414  else
1415  {
1417  REAL_LENGTH),
1418  NIL);
1419  exp_imag2 = make_expression(make_syntax(is_syntax_call, c),
1421  }
1422  /* Conversion implicit */
1423  if (!get_bool_property("TYPE_CHECKER_EXPLICIT_COMPLEX_CONSTANTS") &&
1424  ENTITY_IMPLIED_DCMPLX_P(function_called))
1425  {
1427  CONS(EXPRESSION, exp_real2,
1428  CONS(EXPRESSION, exp_imag2, NIL)));
1429  }
1430  /* Conversion explicit */
1431  else
1432  {
1434  CONS(EXPRESSION, exp_real2,
1435  CONS(EXPRESSION, exp_imag2, NIL)));
1436  }
1439  }
1440  /* COMPLEX -> DCOMPLEX */
1441  else if (basic_complex(to_basic) == 16 &&
1442  (ENTITY_IMPLIED_CMPLX_P(function_called) ||
1443  ENTITY_CONVERSION_CMPLX_P(function_called)))
1444  {
1445  b = make_basic_float(8);
1446  if ((exp_real2 = cast_constant(exp_real, b, context)) == NULL)
1447  {
1448  exp_real2 = exp_real;
1449  }
1450  if (exp_imag != NULL)
1451  {
1452  if ((exp_imag2 = cast_constant(exp_imag, b, context)) == NULL)
1453  {
1454  exp_imag2 = exp_imag;
1455  }
1456  }
1457  else
1458  {
1460  DOUBLE_LENGTH),
1461  NIL);
1462  exp_imag2 = make_expression(make_syntax(is_syntax_call, c),
1464  }
1465  /* Conversion implicit */
1466  if (!get_bool_property("TYPE_CHECKER_EXPLICIT_COMPLEX_CONSTANTS") &&
1467  ENTITY_IMPLIED_CMPLX_P(function_called))
1468  {
1470  CONS(EXPRESSION, exp_real2,
1471  CONS(EXPRESSION, exp_imag2, NIL)));
1472  }
1473  /* Conversion explicit */
1474  else
1475  {
1477  CONS(EXPRESSION, exp_real2,
1478  CONS(EXPRESSION, exp_imag2, NIL)));
1479  }
1482  }
1483  }
1484  }
1485  if (b != NULL)
1486  {
1487  free_basic(b);
1488  }
1489  return NULL;
1490 }
call make_call(entity a1, list a2)
Definition: ri.c:269
expression make_expression(syntax a1, normalized a2)
Definition: ri.c:886
basic make_basic_float(intptr_t _field_)
Definition: ri.c:161
entity copy_entity(entity p)
ENTITY.
Definition: ri.c:2521
syntax make_syntax(enum syntax_utype tag, void *val)
Definition: ri.c:2491
void free_basic(basic p)
Definition: ri.c:107
#define DOUBLE_LENGTH
#define REAL_LENGTH
call convert_constant(call c, basic to_basic)
Definition: bootstrap.c:1253
expression cast_constant(expression exp_constant, basic to_basic, type_context_p context)
Definition: bootstrap.c:1343
entity make_constant_entity(string name, tag bt, size_t size)
For historical reason, call the Fortran version.
Definition: constant.c:301
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
#define NIL
The empty list (nil in Lisp)
Definition: newgen_list.h:47
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
Definition: newgen_list.h:150
#define CAR(pcons)
Get the value of the first element of a list.
Definition: newgen_list.h:92
#define CDR(pcons)
Get the list less its first element.
Definition: newgen_list.h:111
#define DCMPLX_GENERIC_CONVERSION_NAME
#define ENTITY_IMPLIED_DCMPLX_P(e)
#define ENTITY_UNARY_MINUS_P(e)
#define CMPLX_GENERIC_CONVERSION_NAME
#define IMPLIED_DCOMPLEX_NAME
Definition: ri-util-local.h:89
#define ENTITY_IMPLIED_CMPLX_P(e)
#define entity_constant_p(e)
#define IMPLIED_COMPLEX_NAME
Definition: ri-util-local.h:88
entity CreateIntrinsic(string name)
this function does not create an intrinsic function because they must all be created beforehand by th...
Definition: entity.c:1311
@ is_basic_float
Definition: ri.h:572
#define normalized_undefined
Definition: ri.h:1745
#define basic_complex_p(x)
Definition: ri.h:626
#define call_function(x)
Definition: ri.h:709
#define syntax_call_p(x)
Definition: ri.h:2734
@ is_syntax_call
Definition: ri.h:2693
#define syntax_call(x)
Definition: ri.h:2736
#define basic_complex(x)
Definition: ri.h:628
#define expression_syntax(x)
Definition: ri.h:1247
Definition: delay.c:253
#define ENTITY_CONVERSION_CMPLX_P(e)
Definition: type_checker.c:63
#define ENTITY_CONVERSION_DCMPLX_P(e)
Definition: type_checker.c:64
#define exp
Avoid some warnings from "gcc -Wshadow".
Definition: vasnprintf.c:207

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_loop_range()

bool check_loop_range ( range  r,
hash_table  types 
)

type_checker.c

Parameters
typesypes

Definition at line 292 of file type_checker.c.

293 {
294  basic lower, upper, incr;
295  lower = GET_TYPE(types, range_lower(r));
296  upper = GET_TYPE(types, range_upper(r));
297  incr = GET_TYPE(types, range_increment(r));
298  if( (basic_int_p(lower) || basic_float_p(lower)) &&
299  (basic_int_p(upper) || basic_float_p(upper)) &&
300  (basic_int_p(incr) || basic_float_p(incr)))
301  {
302  return true;
303  }
304  return false;
305 }
#define basic_int_p(x)
Definition: ri.h:614
#define range_upper(x)
Definition: ri.h:2290
#define range_increment(x)
Definition: ri.h:2292
#define range_lower(x)
Definition: ri.h:2288
#define basic_float_p(x)
Definition: ri.h:617
#define GET_TYPE(h, e)
type of intrinsics stuff...
Definition: type_checker.c:50

References STUB_ERROR.

Referenced by check_this_loop(), and type_this_expression().

+ Here is the caller graph for this function:

◆ convert_constant()

call convert_constant ( call  c,
basic  to_basic 
)

INT -> REAL

INT -> DOUBLE

INT -> COMPLEX

INT -> DCOMPLEX

REAL -> INT

REAL -> DOUBLE

REAL -> COMPLEX

REAL -> DCOMPLEX

DOUBLE -> INT

DOUBLE -> REAL

DOUBLE -> COMPLEX

DOUBLE -> DCOMPLEX

Parameters
to_basico_basic

Definition at line 1253 of file bootstrap.c.

1254 {
1255  basic b;
1256  entity function_called = call_function(c);
1257  if(entity_constant_p(function_called))
1258  {
1259  b = entity_basic(function_called);
1260  if(basic_equal_p(b, to_basic))
1261  {
1262  //return NULL;
1263  return copy_call(c);
1264  }
1265  else if (basic_int_p(b))
1266  {
1267  /* INT -> REAL */
1268  if (basic_float_p(to_basic) && basic_float(to_basic)==4)
1269  {
1271  }
1272  /* INT -> DOUBLE */
1273  if (basic_float_p(to_basic) && basic_float(to_basic)==8)
1274  {
1276  }
1277  /* INT -> COMPLEX */
1278  if (basic_complex_p(to_basic) && basic_complex(to_basic)==8)
1279  {
1281  }
1282  /* INT -> DCOMPLEX */
1283  if (basic_complex_p(to_basic) && basic_complex(to_basic)==16)
1284  {
1286  }
1287  }
1288  else if (basic_float_p(b) && basic_float(b)==4)
1289  {
1290  /* REAL -> INT */
1291  if (basic_int_p(to_basic))
1292  {
1294  }
1295  /* REAL -> DOUBLE */
1296  else if (basic_float_p(to_basic) && basic_float(to_basic)==8)
1297  {
1299  }
1300  /* REAL -> COMPLEX */
1301  else if (basic_complex_p(to_basic) && basic_complex(to_basic)==8)
1302  {
1304  }
1305  /* REAL -> DCOMPLEX */
1306  else if (basic_complex_p(to_basic) && basic_complex(to_basic)==16)
1307  {
1309  }
1310  }
1311  else if (basic_float_p(b) && basic_float(b)==8)
1312  {
1313  /* DOUBLE -> INT */
1314  if (basic_int_p(to_basic))
1315  {
1317  }
1318  /* DOUBLE -> REAL */
1319  else if (basic_float_p(to_basic) && basic_float(to_basic)==4)
1320  {
1322  }
1323  /* DOUBLE -> COMPLEX */
1324  else if (basic_complex_p(to_basic) && basic_complex(to_basic)==8)
1325  {
1327  }
1328  /* DOUBLE -> DCOMPLEX */
1329  else if (basic_complex_p(to_basic) && basic_complex(to_basic)==16)
1330  {
1332  }
1333  }
1334  }
1335  return NULL;
1336 }
call copy_call(call p)
CALL.
Definition: ri.c:233
static call convert_constant_from_double_to_dcomplex(call c)
DOUBLE -> DCOMPLEX e.g: DCMPLX(-5.9D5) => (-5.9D5, 0.0)
Definition: bootstrap.c:1207
static call convert_constant_from_real_to_double(call c)
REAL -> DOUBLE e.g: DBLE(-5.9E-2) => -5.9D-2.
Definition: bootstrap.c:1101
static call convert_constant_from_real_to_dcomplex(call c)
REAL -> DCOMPLEX e.g: DCMPLX(-5.9E5) => (-5.9D5, 0.0D0)
Definition: bootstrap.c:1232
static call convert_constant_from_int_to_dcomplex(call c)
INT -> DCOMPLEX e.g: DCMPLX(-5) => (-5D0, 0.0D0)
Definition: bootstrap.c:1242
static call convert_constant_from_int_to_double(call c)
INT -> DOUBLE e.g: DBLE(10) => 10.0.
Definition: bootstrap.c:1075
static call convert_constant_from_double_to_complex(call c)
DOUBLE -> COMPLEX e.g: CMPLX(-5.9D5) => (-5.9E5, 0.0)
Definition: bootstrap.c:1187
static call convert_constant_from_double_to_real(call c)
DOUBLE -> REAL e.g: REAL(-5.9D-2) => -5.9E-2.
Definition: bootstrap.c:1127
static call convert_constant_from_int_to_real(call c)
Definition: bootstrap.c:1063
static call convert_constant_from_double_to_int(call c)
DOUBLE -> INT e.g: INT(-5.9D2) => -590.
Definition: bootstrap.c:1153
static call convert_constant_from_int_to_complex(call c)
INT -> COMPLEX e.g: CMPLX(-5) => (-5.0, 0.0)
Definition: bootstrap.c:1197
static call convert_constant_from_real_to_int(call c)
REAL -> INT e.g: INT(-5.9E2) => -590.
Definition: bootstrap.c:1087
static call convert_constant_from_real_to_complex(call c)
REAL -> COMPLEX e.g: CMPLX(-5.9E5) => (-5.9E5, 0.0)
Definition: bootstrap.c:1163
basic entity_basic(entity e)
return the basic associated to entity e if it's a function/variable/constant basic_undefined otherwis...
Definition: entity.c:1380
bool basic_equal_p(basic, basic)
Definition: type.c:927
#define basic_float(x)
Definition: ri.h:619

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateAreas()

void CreateAreas ( void  )

cproto-generated files

bootstrap.c

Definition at line 104 of file bootstrap.c.

105 {
112 
113 
120 }
storage make_storage(enum storage_utype tag, void *val)
Definition: ri.c:2273
area make_area(intptr_t a1, list a2)
Definition: ri.c:98
type make_type(enum type_utype tag, void *val)
Definition: ri.c:2706
#define DYNAMIC_AREA_LOCAL_NAME
Definition: naming-local.h:69
#define STATIC_AREA_LOCAL_NAME
Definition: naming-local.h:70
#define UU
Definition: newgen_types.h:98
@ ENTITY_STATIC_AREA
@ ABSTRACT_LOCATION
@ ENTITY_DYNAMIC_AREA
char * AddPackageToName(string p, string n)
This function concatenate a package name and a local name to produce a global entity name.
Definition: entity.c:2134
@ is_value_unknown
Definition: ri.h:3035
@ is_storage_rom
Definition: ri.h:2494
@ is_type_area
Definition: ri.h:2899

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateIntrinsics()

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

Parameters
module_listodule_list

Definition at line 4417 of file bootstrap.c.

4418 {
4419  /* The table of intrinsic functions. this table is used at the begining
4420  of linking to create Fortran operators, commands and intrinsic functions.
4421 
4422  Functions with a variable number of arguments are declared with INT_MAX
4423  arguments.
4424  */
4425 
4426  /* Nga Nguyen 27/06/2003 Fuse the tables of intrinsics for C and Fortran.
4427  Since there are differences between some kind of operators, such as in
4428  Fortran, "+" is only applied to arithmetic numbers, in C, "+" is also applied
4429  to pointer, the typing functions are different. So in some cases, we have to
4430  rename the operators */
4431  /* Pragma can be represented in the pips IR as a list of expression so new
4432  * functions/intrinsics are needed. For exmaple to represent OMP pragmas,
4433  * following intrinscs are needed:
4434  * 1 - omp, parallel and for which are constant so with 0 argument,
4435  * 2 - the colom poperator (for reduction) that takes two arguments
4436  * 3 - private and reduction that takes a variable number of arguments.
4437  */
4438  /*
4439  * IntrinsicDescriptor need:
4440  * {Name, Nbr_arg, Type, Type_Function, switch_name_function}
4441  * \Name Name of the intrinsic operator/function
4442  * \Nbr_arg Number of argument than the intrinsic operator/function need
4443  * \Type is a pointer of function, that expect to have 1 arg (\Nbr_arg) and return a type of kind functional
4444  * \Type_Function
4445  * \switch_name_function
4446  */
4447  static IntrinsicDescriptor IntrinsicTypeDescriptorTable[] =
4448  {
4455 
4456  /* internal inverse operator... */
4459 
4461 
4464 
4468 
4475 
4477 
4478  /* FORTRAN IO statement */
4494 
4497 
4498  /* Control statement */
4500  {"ENDDO", 0, default_intrinsic_type, 0, 0}, // Why do we need this one?
4508 
4509 
4526  {DREAL_GENERIC_CONVERSION_NAME, 1, overloaded_to_double_type, /* Arnauld Leservot, code CEA */
4530 
4533 
4534  /* (0.,1.) -> switched to a function call... */
4539 
4542 
4552 
4553  //Fortran
4562 
4568 
4574 
4580 
4582 
4594 
4606 
4609 
4613 
4618 
4627 
4636 
4646 
4651 
4660 
4669 
4673 
4677 
4681 
4688 
4692 
4696 
4700 
4705 
4710 
4711  /* Bit manipulation functions : ISO/IEC 1539 */
4723 
4724  /* These operators are used within the OPTIMIZE transformation in
4725  order to manipulate operators such as n-ary add and multiply or
4726  multiply-add operators ( JZ - sept 98) */
4735 
4736  /* integer combined multiply add or sub - FC oct 2005 */
4741 
4742  /* Here are C intrinsics arranged in the order of the standard ISO/IEC 9899:TC2. MB */
4743 
4744  /* ISO 6.5.2.3 structure and union members */
4747  /* ISO 6.5.2.4 postfix increment and decrement operators, real or pointer type operand */
4750  /* ISO 6.5.3.1 prefix increment and decrement operators, real or pointer type operand */
4753  /* ISO 6.5.3.2 address and indirection operators, add pointer type */
4754  // this definition must be more precise but cause a type issue
4755  // {ADDRESS_OF_OPERATOR_NAME, 1, pointer_to_overloaded_type, 0, 0},
4758  /* ISO 6.5.3.3 unary arithmetic operators */
4760  /* Unuary minus : ALREADY EXIST (FORTRAN)
4761  {UNARY_MINUS_OPERATOR_NAME, 1, default_intrinsic_type, typing_arithmetic_operator, 0},*/
4764  /* ISO 6.5.5 multiplicative operators : ALREADY EXIST (FORTRAN)
4765  {MULTIPLY_OPERATOR_NAME, 2, default_intrinsic_type, typing_arithmetic_operator, 0},
4766  {DIVIDE_OPERATOR_NAME, 2, default_intrinsic_type, typing_arithmetic_operator, 0},*/
4768  /* ISO 6.5.6 additive operators, arithmetic types or pointer + integer type*/
4771  /* ISO 6.5.7 bitwise shift operators*/
4774  /* ISO 6.5.8 relational operators,arithmetic or pointer types */
4779  /* ISO 6.5.9 equality operators, return 0 or 1*/
4782  /* ISO 6.5.10 bitwise AND operator */
4784  /* ISO 6.5.11 bitwise exclusive OR operator */
4786  /* ISO 6.5.12 bitwise inclusive OR operator */
4788  /* ISO 6.5.13 logical AND operator */
4790  /* ISO 6.5.14 logical OR operator */
4792  /* ISO 6.5.15 conditional operator */
4794  /* ISO 6.5.16.1 simple assignment : ALREADY EXIST (FORTRAN)
4795  {ASSIGN_OPERATOR_NAME, 2, default_intrinsic_type, typing_of_assign, 0}, */
4796  /* ISO 6.5.16.2 compound assignments*/
4807  /* ISO 6.5.17 comma operator */
4808  {COMMA_OPERATOR_NAME, (INT_MAX), default_intrinsic_type, 0, 0},
4809 
4814 
4815  /* intrinsic to handle C initialization */
4817 
4818  /* #include <assert.h> */
4820  {ASSERT_FAIL_FUNCTION_NAME, 4, overloaded_to_void_type,0,0}, /* does not return */
4821 
4822  /* #include <complex.h> */
4823 
4892 
4893  /* #include <ctype.h> */
4894 
4909  /* End ctype.h */
4910  //not found in standard C99 (in GNU C Library)
4915 
4916  /* Real type is void -> unsigned short int ** */
4918 
4919  /* #include <errno.h> */
4920  /* {"errno", 0, overloaded_to_integer_type, 0, 0}, */
4921  /* bits/errno.h */
4923 
4924 
4925  /* #include <fenv.h> */
4932  // fenv_t *
4933  //{FESETENV_FUNCTION_NAME, 1, integer_to_integer_type, typing_function_int_to_int, 0},
4934  //{FEUPDATEENV_FUNCTION_NAME, 1, integer_to_integer_type, typing_function_int_to_int, 0},
4935 
4936 
4937  /* #include <float.h> */
4938  /* {"__flt_rounds", 1, void_to_integer_type, 0, 0}, */
4939 
4940  /* #include <inttypes.h> */
4943 
4944  /* #include <iso646.h> */
4945 
4946  /* {"_sysconf", 1, integer_to_integer_type, 0, 0},
4947 
4948  {"localeconv", 1, default_intrinsic_type, 0, 0},
4949  {"dcgettext", 3, default_intrinsic_type, 0, 0},
4950  {"dgettext", 2, default_intrinsic_type, 0, 0},
4951  {"gettext", 1, default_intrinsic_type, 0, 0},
4952  {"textdomain", 1, default_intrinsic_type, 0, 0},
4953  {"bindtextdomain", 2, default_intrinsic_type, 0, 0},
4954  {"wdinit", 1, void_to_integer_type, 0 ,0},
4955  {"wdchkind", 1, overloaded_to_integer_type, 0 ,0},
4956  {"wdbindf", 3, overloaded_to_integer_type, 0 ,0},
4957  {"wddelim", 3, default_intrinsic_type, 0, 0},
4958  {"mcfiller", 1, void_to_overloaded_type, 0, 0},
4959  {"mcwrap", 1, void_to_integer_type, 0 ,0},*/
4960 
4961  /* #include <limits.h> */
4962 
4963  /* #include <locale.h> */
4965 
4966  /* #include <math.h> */
4967 
5148  /* End math.h */
5149 
5153 
5157 
5160 
5182 
5183 
5184  /* same name in stdlib
5185  {"ecvt", 4, default_intrinsic_type, 0, 0},
5186  {"fcvt", 4, default_intrinsic_type, 0, 0},
5187  {"gcvt", 3, default_intrinsic_type, 0, 0},
5188  {"strtod", 2, overloaded_to_double_type, 0, 0}, */
5189 
5190  /*#include <setjmp.h>*/
5191 
5192  {"setjmp", 1, overloaded_to_integer_type, 0, 0},
5193  {"__setjmp", 1, overloaded_to_integer_type, 0, 0},
5194  {"longjmp", 2, overloaded_to_void_type, 0, 0},
5195  {"__longjmp", 2, overloaded_to_void_type, 0, 0},
5196  {"sigsetjmp", 2, overloaded_to_integer_type, 0, 0},
5197  {"siglongjmp", 2, overloaded_to_void_type, 0, 0},
5198 
5199 
5200  /*#include <signal.h>*/
5203 
5204  /*#include <stdarg.h>*/
5205  /*#include <stdbool.h>*/
5206  /*#include <stddef.h>*/
5207  /*#include <stdint.h>*/
5208  /*#include <stdio.h>*/
5209 
5224  {SCANF_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
5274  /* same name in stdlib
5275  {"getopt", 3, overloaded_to_integer_type, 0, 0},
5276  {"getsubopt", 3, default_intrinsic_type, 0, 0},*/
5289 
5290  /* C IO system functions in man -S 2. The typing could be refined. See unistd.h */
5291 
5292  {C_OPEN_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0}, /* 2 or 3 arguments */
5295  {C_WRITE_FUNCTION_NAME, 2, default_intrinsic_type, 0, 0}, /* returns ssize_t */
5301 
5302  /* {FCNTL_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},*/ /* 2 or 3 arguments of various types*/ /* located with fcntl.h */
5305  {IOCTL_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
5311  /*#include <stdlib.h>*/
5312 
5350 
5351 
5352  //to check
5380  {RANDOM_FUNCTION_NAME, 1, default_intrinsic_type, 0, 0}, /* void -> long int */
5405 
5406  /*#include <string.h>*/
5407 
5432 
5433  /*#include <tgmath.h>*/
5434  /*#include <time.h>*/
5439  {GETTIMEOFDAY_FUNCTION_NAME, 2, overloaded_to_void_type, 0, 0}, // BSD-GNU
5442  {SECOND_FUNCTION_NAME, 0, void_to_overloaded_type, 0, 0}, //GFORTRAN
5443 
5444  /*#include <wchar.h>*/
5456  { WSCANF_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
5504 
5505  /*#include <wctype.h>*/
5506 
5525 
5526  /* netdb.h */
5528 
5529 
5530  /* #include <fcntl.h>*/
5531 
5532  {FCNTL_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
5536 
5537  /* OMP */
5544 
5545  /* BSD <err.h> */
5546  {ERR_FUNCTION_NAME, (INT_MAX), overloaded_to_void_type, 0, 0},
5547  {ERRX_FUNCTION_NAME, (INT_MAX), overloaded_to_void_type, 0, 0},
5548  {WARN_FUNCTION_NAME, (INT_MAX), overloaded_to_void_type, 0, 0},
5549  {WARNX_FUNCTION_NAME, (INT_MAX), overloaded_to_void_type, 0, 0},
5554 
5555  /* F95 */
5561 
5562  /* F2003 */
5564 
5565  /* PIPS run-time support for C code generation
5566  *
5567  * Source code located in validation/Hyperplane/run_time.src for the
5568  * time being.
5569  */
5576 
5577  /* assembly function */
5579  // The 2 last arg don't know for what
5580 
5581  /* PIPS intrinsics to simulate various effects */
5584  /*SPIRE*/
5585  {SEND_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
5586  {RECV_FUNCTION_NAME, (INT_MAX), overloaded_to_integer_type, 0, 0},
5587 
5588  /*MPI necessary calls*/
5589  //since C and Fortran MPI functions are not differentiate,
5590  // The Fortran version is consider for number of argument
5591  // (it has 1 more argument for the error handler when the C version return it)
5608 
5609  {NULL, 0, 0, 0, 0}
5610  };
5611  intrinsic_type_descriptor_mapping=hash_table_make(hash_string,sizeof(IntrinsicTypeDescriptorTable));
5612  for(IntrinsicDescriptor *p = &IntrinsicTypeDescriptorTable[0];p->name;++p) {
5613  if(!set_belong_p(module_list,p->name))
5615  }
5616 }
static void switch_specific_dcmplx(expression exp, type_context_p context)
Definition: bootstrap.c:3981
static void switch_specific_asin(expression exp, type_context_p context)
ASIN.
Definition: bootstrap.c:3916
static basic typing_function_real_to_double(call c, type_context_p context)
Definition: bootstrap.c:2471
static type double_to_integer_type(int n)
Definition: bootstrap.c:691
static type overloaded_to_double_type(int n)
Definition: bootstrap.c:404
static basic typing_function_real_to_real(call c, type_context_p context)
Definition: bootstrap.c:2246
static basic typing_function_complex_to_real(call c, type_context_p context)
Definition: bootstrap.c:2483
static basic typing_function_overloaded(call __attribute__((unused)) c, type_context_p __attribute__((unused)) context)
Definition: bootstrap.c:2772
static basic check_close(call c, type_context_p context)
Definition: bootstrap.c:3636
static basic typing_buffer_inout(call c, type_context_p context)
Definition: bootstrap.c:2926
static void switch_specific_max(expression exp, type_context_p context)
MAX.
Definition: bootstrap.c:3853
static basic typing_substring(call c, type_context_p context)
Definition: bootstrap.c:2815
static basic typing_implied_do(call c, type_context_p context)
Definition: bootstrap.c:2980
static type complex_to_real_type(int n)
Definition: bootstrap.c:849
static type real_to_integer_type(int n)
Definition: bootstrap.c:626
static basic typing_logical_operator(call c, type_context_p context)
Definition: bootstrap.c:2107
type longinteger_to_overloaded_type(int n)
MB.
Definition: bootstrap.c:4236
static basic typing_function_constant_complex(call c, type_context_p context)
CMPLX_.
Definition: bootstrap.c:2738
static basic typing_function_dcomplex_to_double(call c, type_context_p context)
Definition: bootstrap.c:2495
type overloaded_to_void_type(int n)
Definition: bootstrap.c:4292
static type real_to_longlonginteger_type(int n)
MB.
Definition: bootstrap.c:678
static basic typing_function_longdouble_to_longint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2446
static basic check_backspace(call c, type_context_p context)
Definition: bootstrap.c:3671
static basic typing_function_double_to_int(call c, type_context_p context)
Definition: bootstrap.c:2398
static basic typing_function_RealDouble_to_RealDouble(call c, type_context_p context)
Definition: bootstrap.c:2523
static type longinteger_to_longinteger_type(int n)
MB.
Definition: bootstrap.c:733
static basic no_typing(call __attribute__((unused)) c, type_context_p __attribute__((unused)) context)
Definition: bootstrap.c:2971
static type integer_to_logical_type(int n)
to handle BTEST function which takes integer as parameter and returns logical.
Definition: bootstrap.c:490
static void switch_specific_tan(expression exp, type_context_p context)
TAN.
Definition: bootstrap.c:3909
static basic typing_function_RealDouble_to_Integer(call c, type_context_p context)
Definition: bootstrap.c:2540
static basic typing_function_longdouble_to_longlongint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2459
static basic check_rewind(call c, type_context_p context)
Definition: bootstrap.c:3703
static hash_table intrinsic_type_descriptor_mapping
Definition: bootstrap.c:4324
static type overloaded_to_real_type(int n)
Definition: bootstrap.c:390
static basic typing_function_int_to_int(call c, type_context_p context)
Definition: bootstrap.c:2219
static void switch_specific_sinh(expression exp, type_context_p context)
SINH.
Definition: bootstrap.c:3944
static type longdouble_to_longdouble_type(int n)
MB.
Definition: bootstrap.c:834
static basic typing_function_longdouble_to_int(call c, type_context_p context)
MB.
Definition: bootstrap.c:2433
static basic check_endfile(call c, type_context_p context)
Definition: bootstrap.c:3687
static type longdoublecomplex_to_longdoublecomplex_type(int n)
MB.
Definition: bootstrap.c:903
static basic check_read_write(call c, type_context_p context)
Definition: bootstrap.c:3603
static basic typing_function_int_to_real(call c, type_context_p context)
Definition: bootstrap.c:2370
static void switch_specific_mod(expression exp, type_context_p context)
MOD.
Definition: bootstrap.c:3832
static basic typing_function_RealDoubleComplex_to_RealDoubleComplex(call c, type_context_p context)
Definition: bootstrap.c:2558
static type double_to_longlonginteger_type(int n)
MB.
Definition: bootstrap.c:719
static basic typing_function_IntegerRealDouble_to_IntegerRealDouble(call c, type_context_p context)
Definition: bootstrap.c:2576
static basic typing_function_char_to_logical(call c, type_context_p context)
Definition: bootstrap.c:2507
static type overloaded_to_doublecomplex_type(int n)
Definition: bootstrap.c:446
static basic typing_function_double_to_double(call c, type_context_p context)
Definition: bootstrap.c:2255
type integer_to_void_type(int n)
Definition: bootstrap.c:4264
static void switch_specific_dim(expression exp, type_context_p context)
DIM.
Definition: bootstrap.c:3846
static basic typing_function_conversion_to_complex(call c, type_context_p context)
Definition: bootstrap.c:2669
static basic typing_function_format_name(call __attribute__((unused)) c, type_context_p __attribute__((unused)) context)
Definition: bootstrap.c:2779
static void simplification_dcomplex(expression, type_context_p)
Definition: bootstrap.c:4183
static type char_pointer_to_double_type(int n __attribute__((unused)))
C only because of pointer.
Definition: bootstrap.c:573
type integer_to_overloaded_type(int n)
Definition: bootstrap.c:4222
static basic typing_function_longdcomplex_to_longdouble(call c, type_context_p context)
MB.
Definition: bootstrap.c:2300
static void switch_specific_log10(expression exp, type_context_p context)
LOG10.
Definition: bootstrap.c:3888
static type default_intrinsic_type(int n)
The default intrinsic type is a functional type with n overloaded arguments returning an overloaded r...
Definition: bootstrap.c:362
static type longdouble_to_longlonginteger_type(int n)
MB.
Definition: bootstrap.c:819
static void switch_specific_anint(expression exp, type_context_p context)
ANINT.
Definition: bootstrap.c:3811
static basic typing_arithmetic_operator(call c, type_context_p context)
Definition: bootstrap.c:2020
static void switch_specific_aint(expression exp, type_context_p context)
AINT.
Definition: bootstrap.c:3804
static void switch_specific_min(expression exp, type_context_p context)
MIN.
Definition: bootstrap.c:3860
static type substring_type(int n)
Definition: bootstrap.c:973
static basic statement_with_at_most_one_expression_integer(call c, type_context_p context)
Definition: bootstrap.c:3153
static void switch_specific_atan(expression exp, type_context_p context)
ATAN.
Definition: bootstrap.c:3930
static basic typing_function_real_to_longint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2346
static type real_to_real_type(int n)
Definition: bootstrap.c:639
static type character_to_logical_type(int n)
Definition: bootstrap.c:945
static void simplification_real(expression exp, type_context_p context)
Definition: bootstrap.c:4162
static type integer_to_real_type(int n)
Definition: bootstrap.c:598
static type doublecomplex_to_doublecomplex_type(int n)
Definition: bootstrap.c:889
static type assign_substring_type(int n)
Definition: bootstrap.c:995
static basic typing_function_longint_to_longint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2228
static basic typing_function_longlongint_to_longlongint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2237
static void switch_specific_log(expression exp, type_context_p context)
LOG.
Definition: bootstrap.c:3881
static type void_to_void_to_int_pointer_type(int n __attribute__((unused)))
C only because of pointer.
Definition: bootstrap.c:551
static basic statement_with_at_most_one_integer_or_character(call c, type_context_p context)
Definition: bootstrap.c:3100
static basic typing_function_conversion_to_real(call c, type_context_p context)
Definition: bootstrap.c:2653
static void switch_specific_sqrt(expression exp, type_context_p context)
SQRT.
Definition: bootstrap.c:3867
static basic typing_function_int_to_logical(call c, type_context_p context)
function added to handle one of the bit manipulation functions : BTEST.
Definition: bootstrap.c:2385
static basic typing_of_assign(call c, type_context_p context)
Definition: bootstrap.c:2786
static basic typing_power_operator(call c, type_context_p context)
Definition: bootstrap.c:2041
static basic typing_function_constant_dcomplex(call c, type_context_p context)
DCMPLX_.
Definition: bootstrap.c:2755
static basic check_inquire(call c, type_context_p context)
Definition: bootstrap.c:3653
static void simplification_complex(expression, type_context_p)
forward declarations
Definition: bootstrap.c:4176
static type longdouble_to_integer_type(int n)
MB.
Definition: bootstrap.c:791
void register_intrinsic_type_descriptor(IntrinsicDescriptor *p)
This function is called one time (at the very beginning) to create all intrinsic functions.
Definition: bootstrap.c:4411
static void switch_specific_nint(expression exp, type_context_p context)
NINT.
Definition: bootstrap.c:3818
static basic typing_function_double_to_longlongint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2422
static type double_to_double_type(int n)
Definition: bootstrap.c:777
static basic typing_assign_substring(call c, type_context_p context)
Definition: bootstrap.c:2867
static basic typing_function_real_to_int(call c, type_context_p context)
Definition: bootstrap.c:2334
static type logical_to_logical_type(int n)
Definition: bootstrap.c:1020
static type unsigned_integer_to_void_pointer_type(int n)
Definition: bootstrap.c:517
static basic check_format(call c, type_context_p context)
Definition: bootstrap.c:3719
static basic typing_function_dcomplex_to_dcomplex(call c, type_context_p context)
Definition: bootstrap.c:2282
static basic typing_function_longdouble_to_longdouble(call c, type_context_p context)
MB.
Definition: bootstrap.c:2264
static void simplification_int(expression exp, type_context_p context)
Definition: bootstrap.c:4155
static type void_to_void_type(int n __attribute__((unused)))
Can be used for C or Fortran functions.
Definition: bootstrap.c:531
static type longdouble_to_longinteger_type(int n)
MB.
Definition: bootstrap.c:805
static type character_to_integer_type(int n)
Definition: bootstrap.c:931
static type overloaded_to_complex_type(int n)
Definition: bootstrap.c:432
type void_to_integer_type(int n)
Definition: bootstrap.c:4306
static void switch_specific_cos(expression exp, type_context_p context)
COS.
Definition: bootstrap.c:3902
static type longlonginteger_to_longlonginteger_type(int n)
MB.
Definition: bootstrap.c:747
static basic typing_function_char_to_int(call c, type_context_p context)
Definition: bootstrap.c:2311
type longlonginteger_to_overloaded_type(int n)
MB.
Definition: bootstrap.c:4250
static void switch_specific_sign(expression exp, type_context_p context)
SIGN.
Definition: bootstrap.c:3839
static basic typing_function_conversion_to_double(call c, type_context_p context)
Definition: bootstrap.c:2661
static type overloaded_to_logical_type(int n)
type t = type_undefined; functional ft = functional_undefined;
Definition: bootstrap.c:474
static type double_to_longinteger_type(int n)
MB.
Definition: bootstrap.c:705
static basic typing_relational_operator(call c, type_context_p context)
Definition: bootstrap.c:2085
static void simplification_double(expression exp, type_context_p context)
Definition: bootstrap.c:4169
static type overloaded_to_integer_type(int n)
Definition: bootstrap.c:376
static basic check_open(call c, type_context_p context)
Definition: bootstrap.c:3620
static void switch_specific_cosh(expression exp, type_context_p context)
COSH.
Definition: bootstrap.c:3951
static basic typing_function_longdcomplex_to_longdcomplex(call c, type_context_p context)
B: added for long double complex type.
Definition: bootstrap.c:2291
static basic typing_function_real_to_longlongint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2358
static type real_to_longinteger_type(int n)
MB.
Definition: bootstrap.c:665
static basic typing_function_complex_to_complex(call c, type_context_p context)
Definition: bootstrap.c:2273
static type real_to_double_type(int n)
Definition: bootstrap.c:652
static basic statement_without_argument(call c, type_context_p context)
Definition: bootstrap.c:3079
static type longdoublecomplex_to_longdouble_type(int n)
MB.
Definition: bootstrap.c:917
static void switch_specific_sin(expression exp, type_context_p context)
SIN.
Definition: bootstrap.c:3895
static basic typing_concat_operator(call c, type_context_p context)
Definition: bootstrap.c:2120
static type complex_to_complex_type(int n)
Definition: bootstrap.c:876
static basic typing_function_int_to_char(call c, type_context_p context)
Definition: bootstrap.c:2322
static type overloaded_to_longdouble_type(int n)
MB.
Definition: bootstrap.c:418
static void switch_specific_tanh(expression exp, type_context_p context)
TANH.
Definition: bootstrap.c:3958
static void switch_specific_atan2(expression exp, type_context_p context)
ATAN2.
Definition: bootstrap.c:3937
static type character_to_character_type(int n)
Definition: bootstrap.c:959
static basic typing_function_IntegerRealDoubleComplex_to_IntegerRealDoubleReal(call c, type_context_p context)
Definition: bootstrap.c:2600
static void switch_specific_abs(expression exp, type_context_p context)
ABS.
Definition: bootstrap.c:3825
static basic typing_function_conversion_to_integer(call c, type_context_p context)
Definition: bootstrap.c:2645
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....
Definition: bootstrap.c:505
static void switch_specific_cmplx(expression exp, type_context_p context)
Definition: bootstrap.c:3969
static type doublecomplex_to_double_type(int n)
Definition: bootstrap.c:862
static basic typing_function_double_to_longint(call c, type_context_p context)
MB.
Definition: bootstrap.c:2410
static basic typing_function_conversion_to_dcomplex(call c, type_context_p context)
Definition: bootstrap.c:2703
static void switch_specific_exp(expression exp, type_context_p context)
EXP.
Definition: bootstrap.c:3874
static void switch_specific_acos(expression exp, type_context_p context)
ACOS.
Definition: bootstrap.c:3923
type void_to_overloaded_type(int)
hash_table hash_table_make(hash_key_type key_type, size_t size)
Definition: hash.c:294
#define LIST_DIRECTED_FORMAT_NAME
Definition: naming-local.h:97
@ hash_string
Definition: newgen_hash.h:32
bool set_belong_p(const set, const void *)
Definition: set.c:194
#define UNBOUNDED_DIMENSION_NAME
Definition: ri-util-local.h:74
#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
Definition: ri-util-local.h:98
#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 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
Definition: ri-util-local.h:77
#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 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 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 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 AINT_CONVERSION_NAME
#define STRTOUL_FUNCTION_NAME
#define LESS_THAN_OPERATOR_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 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 Y0_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 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
Definition: ri-util-local.h:92
#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 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 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 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 J1_OPERATOR_NAME
#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 BACKSPACE_FUNCTION_NAME
#define ISOC99_VSSCANF_FUNCTION_NAME
#define CARGL_OPERATOR_NAME
#define DEREFERENCING_OPERATOR_NAME
Definition: ri-util-local.h:93
#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
Definition: ri-util-local.h:91
#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
Definition: ri-util-local.h:81
#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 Y1_OPERATOR_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 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 IMPLIED_DO_NAME
Definition: ri-util-local.h:75
#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 YN_OPERATOR_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 ADDRESS_OF_OPERATOR_NAME
#define FABSF_OPERATOR_NAME
#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 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 C_CLOSE_FUNCTION_NAME
#define GETEXECNAME_FUNCTION_NAME
#define GAMMA_OPERATOR_NAME
#define LGE_OPERATOR_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 JN_OPERATOR_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
Definition: ri-util-local.h:80
#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 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 BRACE_INTRINSIC
Definition: ri-util-local.h:85
#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
Definition: ri-util-local.h:99
#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
Definition: ri-util-local.h:97
#define TMPNAM_FUNCTION_NAME
#define DSINH_OPERATOR_NAME
#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 J0_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 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 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 OR_OPERATOR_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
Definition: ri-util-local.h:95
#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
The following data structure describes an intrinsic function: its name and its arity and its type,...

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().

+ Here is the caller graph for this function:

◆ FindOrMakeDefaultIntrinsic()

entity FindOrMakeDefaultIntrinsic ( string  name,
int  arity 
)

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.

Parameters
nameis the name of the intrinsic
nis the number of argument
Returns
the entity of the intrinsic

It seems it has been previously created:

Parameters
nameame
arityrity

Definition at line 4397 of file bootstrap.c.

4398 {
4400  if (!entity_undefined_p(e))
4401  /* It seems it has been previously created: */
4402  return e;
4403 
4404  return MakeIntrinsic(name, arity, default_intrinsic_type);
4405 }
static entity MakeIntrinsic(string name, int arity, type(*intrinsic_type)(int))
This function creates an entity that represents an intrinsic function.
Definition: bootstrap.c:4351
entity FindEntity(const char *package, const char *name)
Retrieve an entity from its package/module name and its local name.
Definition: entity.c:1503
#define entity_undefined_p(x)
Definition: ri.h:2762

References default_intrinsic_type(), entity_undefined_p, FindEntity(), MakeIntrinsic(), and TOP_LEVEL_MODULE_NAME.

+ Here is the call graph for this function:

◆ FindOrMakeIntrinsic()

entity FindOrMakeIntrinsic ( string  name,
int  arity,
type(*)(int intrinsic_type 
)

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.

Parameters
nameame
arityrity

Definition at line 4371 of file bootstrap.c.

4372 {
4374 
4375  if (entity_undefined_p(e)) {
4376  e = MakeIntrinsic(name, arity, intrinsic_type);
4377  }
4378 
4379  return e;
4380 }

References entity_undefined_p, FindEntity(), MakeIntrinsic(), and TOP_LEVEL_MODULE_NAME.

Referenced by register_intrinsic_type_descriptor().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_switch_name_function_for_intrinsic()

switch_name_function get_switch_name_function_for_intrinsic ( const char *  name)
Parameters
nameame

Definition at line 4338 of file bootstrap.c.

4339 {
4340  return ((IntrinsicDescriptor *) hash_get(intrinsic_type_descriptor_mapping, name))->name_function;
4341 }
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.
Definition: hash.c:449

References hash_get(), and intrinsic_type_descriptor_mapping.

Referenced by type_this_call().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_typing_function_for_intrinsic()

typing_function_t get_typing_function_for_intrinsic ( const char *  name)
Parameters
nameame

Definition at line 4330 of file bootstrap.c.

4331 {
4332  return ((IntrinsicDescriptor *) hash_get(intrinsic_type_descriptor_mapping, name))->type_function;
4333 }

References hash_get(), and intrinsic_type_descriptor_mapping.

Referenced by type_this_call(), and type_this_instruction().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ insert_cast()

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

Parameters
fromrom
expxp
contextontext

Definition at line 1567 of file bootstrap.c.

1568 {
1569  call c;
1570  syntax s;
1571  entity cast_function;
1572  expression exp_constant;
1573 
1574  s = expression_syntax(exp);
1575 
1576  /* If exp is a constant -> Convert it
1577  * e.g: 5.9 -> 5 (REAL -> INT)
1578  */
1579  if ((exp_constant = cast_constant(exp, cast, context)) != NULL)
1580  {
1581  return exp_constant;
1582  }
1583 
1584  /* If not */
1585  cast_function = get_cast_function_for_basic(cast, from);
1586  if (cast_function == NULL)
1587  {
1588  pips_internal_error("Cast function is not verified!");
1589  }
1590  if (cast_function == entity_undefined)
1591  {
1592  pips_internal_error("Can not convert to LOGICAL!");
1593  }
1594  c = make_call(cast_function, CONS(EXPRESSION, exp, NIL));
1595  s = make_syntax(is_syntax_call, c);
1596 
1597  /* Count the number of conversions */
1598  context->number_of_conversion++;
1599 
1601 }
static entity get_cast_function_for_basic(basic cast, basic from)
Definition: bootstrap.c:1495
#define entity_undefined
Definition: ri.h:2761

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ integer_to_overloaded_type()

type integer_to_overloaded_type ( int  n)

Definition at line 4222 of file bootstrap.c.

4223 {
4224  type t = type_undefined;
4226 
4228  t = make_type(is_type_functional, ft);
4229 
4230  functional_parameters(ft) =
4232  return t;
4233 }
functional make_functional(list a1, type a2)
Definition: ri.c:1109
static list make_parameter_list(int n, parameter(*mkprm)(void))
Definition: bootstrap.c:329
parameter MakeIntegerParameter(void)
Definition: type.c:184
type MakeOverloadedResult(void)
this function creates a default fortran operator result, i.e.
Definition: type.c:261
#define functional_parameters(x)
Definition: ri.h:1442
#define type_undefined
Definition: ri.h:2883
@ is_type_functional
Definition: ri.h:2901
#define functional_undefined
Definition: ri.h:1418

References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeIntegerParameter(), MakeOverloadedResult(), NIL, and type_undefined.

Referenced by CreateIntrinsics().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ integer_to_void_type()

type integer_to_void_type ( int  n)

Definition at line 4264 of file bootstrap.c.

4265 {
4266  type t = type_undefined;
4268 
4270  t = make_type(is_type_functional, ft);
4271 
4272  functional_parameters(ft) =
4274  return t;
4275 }
type make_type_void(list _field_)
Definition: ri.c:2727

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ longinteger_to_overloaded_type()

type longinteger_to_overloaded_type ( int  n)

MB.

Definition at line 4236 of file bootstrap.c.

4237 {
4238  type t = type_undefined;
4240 
4242  t = make_type(is_type_functional, ft);
4243 
4244  functional_parameters(ft) =
4246  return t;
4247 }
parameter MakeLongIntegerParameter(void)
Definition: type.c:189

References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeLongIntegerParameter(), MakeOverloadedResult(), NIL, and type_undefined.

Referenced by CreateIntrinsics().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ longlonginteger_to_overloaded_type()

type longlonginteger_to_overloaded_type ( int  n)

MB.

Definition at line 4250 of file bootstrap.c.

4251 {
4252  type t = type_undefined;
4254 
4256  t = make_type(is_type_functional, ft);
4257 
4258  functional_parameters(ft) =
4260  return t;
4261 }
parameter MakeLongLongIntegerParameter(void)
MB.
Definition: type.c:199

References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeLongLongIntegerParameter(), MakeOverloadedResult(), NIL, and type_undefined.

Referenced by CreateIntrinsics().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeFileName()

string MakeFileName ( char *  prefix,
char *  base,
char *  suffix 
)
Parameters
prefixrefix
basease
suffixuffix

Definition at line 5687 of file bootstrap.c.

5689 {
5690  char *s;
5691 
5692  s = (char*) malloc(strlen(prefix)+strlen(base)+strlen(suffix)+1);
5693 
5694  strcpy(s, prefix);
5695  strcat(s, base);
5696  strcat(s, suffix);
5697 
5698  return(s);
5699 }
bdt base
Current expression.
Definition: bdt_read_paf.c:100
void * malloc(YYSIZE_T)
static const char * prefix

References base, malloc(), and prefix.

+ Here is the call graph for this function:

◆ MakeIoFileArray()

entity MakeIoFileArray ( entity  f)

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.

5706 {
5708 
5709  if(type_undefined_p(entity_type(io_files))) {
5710  /* FI: this initialization is usually performed in
5711  bootstrap.c, but it is easier to do it here because the
5712  IO_FILE type does not have to be built from scratch. */
5714  type ct = copy_type(type_to_pointed_type(rt)); // FI: no risk with typedef
5715  pips_assert("ct is a scalar type",
5718  CONS(DIMENSION,
5720  /*
5721  MakeNullaryCall
5722  (CreateIntrinsic(UNBOUNDED_DIMENSION_NAME))
5723  */
5724  int_to_expression(2000),
5725  NIL),
5726  NIL);
5727  entity_type(io_files) = ct;
5730  entity_storage(io_files) =
5732  make_ram(ent,
5735  0, NIL));
5737  }
5738  return io_files;
5739 }
type copy_type(type p)
TYPE.
Definition: ri.c:2655
ram make_ram(entity a1, entity a2, intptr_t a3, list a4)
Definition: ri.c:1999
dimension make_dimension(expression a1, expression a2, list a3)
Definition: ri.c:565
#define ENDP(l)
Test if a list is empty.
Definition: newgen_list.h:66
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
Definition: misc-local.h:172
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
Definition: offsets.c:15
#define IO_EFFECTS_PACKAGE_NAME
Implicit variables to handle IO effetcs.
#define IO_EFFECTS_IO_FILE_NAME
Array of struct io_files pointed to by pointers returned by fopen and used by fclose,...
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...
Definition: entity.c:1586
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
Definition: expression.c:1188
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.
Definition: type.c:5265
#define functional_result(x)
Definition: ri.h:1444
#define type_functional(x)
Definition: ri.h:2952
#define type_variable(x)
Definition: ri.h:2949
#define entity_storage(x)
Definition: ri.h:2794
@ is_storage_ram
Definition: ri.h:2492
#define type_undefined_p(x)
Definition: ri.h:2884
#define variable_dimensions(x)
Definition: ri.h:3122
#define entity_type(x)
Definition: ri.h:2792
#define entity_initial(x)
Definition: ri.h:2796

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeValueLitteral()

value MakeValueLitteral ( void  )

Definition at line 5680 of file bootstrap.c.

5681 {
5684 }
constant make_constant(enum constant_utype tag, void *val)
Definition: ri.c:406
@ is_constant_litteral
Definition: ri.h:820

References is_constant_litteral, is_value_constant, make_constant(), make_value(), and UU.

Referenced by EvalConstant().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeVoidParameter()

parameter MakeVoidParameter ( void  )

Definition at line 4199 of file bootstrap.c.

4200 {
4203  make_dummy_unknown());
4204 }
parameter make_parameter(type a1, mode a2, dummy a3)
Definition: ri.c:1495
mode make_mode(enum mode_utype tag, void *val)
Definition: ri.c:1350
dummy make_dummy_unknown(void)
Definition: ri.c:617
@ is_mode_reference
Definition: ri.h:1676
@ is_type_void
Definition: ri.h:2904

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeVoidResult()

type MakeVoidResult ( void  )

Move the following functions to ri-util/type.c.

Definition at line 4193 of file bootstrap.c.

4194 {
4195  return make_type(is_type_void, UU);
4196 }

References is_type_void, make_type(), and UU.

Referenced by overloaded_to_void_type().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ overloaded_to_void_type()

type overloaded_to_void_type ( int  n)

Definition at line 4292 of file bootstrap.c.

4293 {
4294  type t = type_undefined;
4296 
4298  functional_parameters(ft) =
4300  t = make_type(is_type_functional, ft);
4301 
4302  return t;
4303 }
type MakeVoidResult()
Move the following functions to ri-util/type.c.
Definition: bootstrap.c:4193
parameter MakeOverloadedParameter(void)
Definition: type.c:167

References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeOverloadedParameter(), MakeVoidResult(), NIL, and type_undefined.

Referenced by CreateIntrinsics().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pointer_to_overloaded_type()

type pointer_to_overloaded_type ( int  n)

Definition at line 4208 of file bootstrap.c.

4209 {
4210  type t = type_undefined;
4212 
4214  t = make_type(is_type_functional, ft);
4215 
4216  functional_parameters(ft) =
4218  return t;
4219 }
parameter MakePointerParameter(void)
Definition: type.c:173

References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeOverloadedResult(), MakePointerParameter(), NIL, and type_undefined.

+ Here is the call graph for this function:

◆ register_intrinsic_type_descriptor()

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.

4411  {
4414 }
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...
Definition: bootstrap.c:4371
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.
Definition: hash.c:364
type(* intrinsic_type)(int)

References FindOrMakeIntrinsic(), hash_put(), IntrinsicDescriptor::intrinsic_type, intrinsic_type_descriptor_mapping, IntrinsicDescriptor::name, and IntrinsicDescriptor::nbargs.

Referenced by CreateIntrinsics(), and step_analyse_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ type_checker()

bool type_checker ( const  string)

Used to check the language

Parameters
stringame

Definition at line 548 of file type_checker.c.

549 {
550  statement stat;
551  debug_on("TYPE_CHECKER_DEBUG_LEVEL");
552  pips_debug(1, "considering module %s\n", name);
553 
554  /* Used to check the language */
556  stat = (statement) db_get_memory_resource(DBR_CODE, name, true);
558 
559  typing_of_expressions(name, stat);
560 
561  DB_PUT_MEMORY_RESOURCE(DBR_CODE, name, stat);
564 
565  pips_debug(1, "done");
566  debug_off();
567  return true;
568 }
struct _newgen_struct_statement_ * statement
Definition: cloning.h:21
void reset_current_module_entity(void)
Reset the current module entity.
Definition: static.c:97
void reset_current_module_statement(void)
Reset the current module statement.
Definition: static.c:221
statement set_current_module_statement(statement)
Set the current module statement.
Definition: static.c:165
entity set_current_module_entity(entity)
static.c
Definition: static.c:66
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
Definition: database.c:755
#define debug_on(env)
Definition: misc-local.h:157
#define debug_off()
Definition: misc-local.h:160
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
Definition: entity.c:1479
void typing_of_expressions(string name, statement s)
Definition: type_checker.c:526

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().

+ Here is the call graph for this function:

◆ type_loop_range()

void type_loop_range ( basic  index,
range  r,
type_context_p  context 
)
Parameters
indexndex
contextontext

Definition at line 1038 of file bootstrap.c.

1039 {
1040  basic lower, upper, incr;
1041  lower = GET_TYPE(context->types, range_lower(r));
1042  upper = GET_TYPE(context->types, range_upper(r));
1043  incr = GET_TYPE(context->types, range_increment(r));
1044 
1045  if(!basic_equal_p(index, lower))
1046  {
1047  range_lower(r) = insert_cast(index, lower, range_lower(r), context);
1048  }
1049  if(!basic_equal_p(index, upper))
1050  {
1051  range_upper(r) = insert_cast(index, upper, range_upper(r), context);
1052  }
1053  if(!basic_equal_p(index, incr))
1054  {
1055  range_increment(r) = insert_cast(index, incr, range_increment(r), context);
1056  }
1057 }
expression insert_cast(basic cast, basic from, expression exp, type_context_p)
Function in type_checker.c.
Definition: bootstrap.c:1567

References basic_equal_p(), GET_TYPE, insert_cast(), range_increment, range_lower, and range_upper.

Referenced by check_this_loop(), and typing_implied_do().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ typing_of_expressions()

void typing_of_expressions ( string  name,
statement  s 
)

Bottom-up typing

Summary

Type checking ...

Parameters
nameame

Definition at line 526 of file type_checker.c.

527 {
529 
532  context.number_of_error = 0;
533  context.number_of_conversion = 0;
534  context.number_of_simplication = 0;
535 
536  /* Bottom-up typing */
537  type_this_chunk((void *) s, &context);
538 
539  /* Summary */
540  put_summary(name, &context);
541 
542  /* Type checking ... */
543  HASH_MAP(st, ba, free_basic(ba), context.types);
544  hash_table_free(context.types);
546 }
void hash_table_free(hash_table htp)
this function deletes a hash table that is no longer useful.
Definition: hash.c:327
#define HASH_MAP(k, v, code, ht)
Definition: newgen_hash.h:60
@ hash_pointer
Definition: newgen_hash.h:32
void stack_free(stack *)
type, bucket_size, policy
Definition: stack.c:292
stack stack_make(int, int, int)
allocation
Definition: stack.c:246
#define statement_domain
newgen_sizeofexpression_domain_defined
Definition: ri.h:362
list stats
Definition: delay.c:255
context for type checking.
static void put_summary(string name, type_context_p context)
Definition: type_checker.c:477
static void type_this_chunk(void *c, type_context_p context)
Definition: type_checker.c:423

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ void_to_integer_type()

type void_to_integer_type ( int  n)

Definition at line 4306 of file bootstrap.c.

4307 {
4308  type t = type_undefined;
4310 
4312  functional_parameters(ft) =
4314  t = make_type(is_type_functional, ft);
4315 
4316  return t;
4317 }
parameter MakeVoidParameter()
Definition: bootstrap.c:4199
type MakeIntegerResult(void)
Definition: type.c:276

References functional_parameters, functional_undefined, is_type_functional, make_functional(), make_parameter_list(), make_type(), MakeIntegerResult(), MakeVoidParameter(), NIL, and type_undefined.

Referenced by CreateIntrinsics().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ void_to_overloaded_type()

type void_to_overloaded_type ( int  )

Referenced by CreateIntrinsics().

+ Here is the caller graph for this function: