#include "proj.h"#include "glimits.h"#include "target.h"#include "diagnostic.h"#include "bad.h"#include "info.h"#include "lex.h"#include "malloc.h"

Go to the source code of this file.
| #define dotok | ( | x | ) | if (x != NULL) ++sz; |
| #define dotok | ( | x | ) | if (x != NULL) ++sz; |
Referenced by ffetarget_real1(), and ffetarget_real2().
| #define dotoktxt | ( | x | ) |
| #define dotoktxt | ( | x | ) | if (x != NULL) sz += ffelex_token_length(x) |
| #define dotoktxt | ( | x | ) |
| #define dotoktxt | ( | x | ) | if (x != NULL) sz += ffelex_token_length(x) |
Referenced by ffetarget_real1(), and ffetarget_real2().
| #define dotoktxtexp | ( | x | ) |
| void ffetarget_aggregate_info | ( | ffeinfoBasictype * | ebt, | |
| ffeinfoKindtype * | ekt, | |||
| ffetargetAlign * | units, | |||
| ffeinfoBasictype | abt, | |||
| ffeinfoKindtype | akt | |||
| ) |
Definition at line 167 of file target.c.
References assert, FFEINFO_kindtypeCHARACTERDEFAULT, FFEINFO_kindtypeNONE, ffeinfo_type(), ffetype_size, and NULL.
Referenced by ffedata_advance_(), ffedata_gather(), ffedata_gather_(), and ffedata_value_().
| ffetargetAlign ffetarget_align | ( | ffetargetAlign * | updated_alignment, | |
| ffetargetAlign * | updated_modulo, | |||
| ffetargetOffset | offset, | |||
| ffetargetAlign | alignment, | |||
| ffetargetAlign | modulo | |||
| ) |
Definition at line 203 of file target.c.
Referenced by ffeequiv_layout_cblock(), ffeequiv_layout_local_(), and ffestorag_exec_layout().
| bool ffetarget_character1 | ( | ffetargetCharacter1 * | val, | |
| ffelexToken | character, | |||
| mallocPool | pool | |||
| ) |
Definition at line 301 of file target.c.
References ffelex_token_length, ffelex_token_text, _ffetarget_char_1_::length, malloc_new_kp, memcpy, NULL, _ffetarget_char_1_::text, and TRUE.
Referenced by ffebld_constant_new_character1().
| int ffetarget_cmp_character1 | ( | ffetargetCharacter1 | l, | |
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 324 of file target.c.
References _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffebld_constant_cmp(), and ffebld_constant_new_character1_val().
| int ffetarget_cmp_hollerith | ( | ffetargetHollerith | l, | |
| ffetargetHollerith | r | |||
| ) |
Definition at line 565 of file target.c.
References _ffetarget_hollerith_::length, memcmp, and _ffetarget_hollerith_::text.
Referenced by ffebld_constant_new_hollerith_val().
| ffebad ffetarget_concatenate_character1 | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r, | |||
| mallocPool | pool, | |||
| ffetargetCharacterSize * | len | |||
| ) |
Definition at line 347 of file target.c.
References _ffetarget_char_1_::length, malloc_new_kp, memcpy, NULL, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_concatenate().
| ffebad ffetarget_convert_any_character1_ | ( | char * | res, | |
| size_t | size, | |||
| ffetargetCharacter1 | l | |||
| ) |
Definition at line 575 of file target.c.
References i, _ffetarget_char_1_::length, memcpy, memset, p, and _ffetarget_char_1_::text.
| ffebad ffetarget_convert_any_hollerith_ | ( | char * | res, | |
| size_t | size, | |||
| ffetargetHollerith | l | |||
| ) |
Definition at line 600 of file target.c.
References i, _ffetarget_hollerith_::length, memcpy, memset, p, and _ffetarget_hollerith_::text.
| ffebad ffetarget_convert_any_typeless_ | ( | char * | res, | |
| size_t | size, | |||
| ffetargetTypeless | l | |||
| ) |
| ffebad ffetarget_convert_character1_character1 | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacterSize | size, | |||
| ffetargetCharacter1 | l, | |||
| mallocPool | pool | |||
| ) |
Definition at line 707 of file target.c.
References _ffetarget_char_1_::length, malloc_new_kp, memcpy, memset, NULL, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_convert().
| ffebad ffetarget_convert_character1_hollerith | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacterSize | size, | |||
| ffetargetHollerith | l, | |||
| mallocPool | pool | |||
| ) |
Definition at line 742 of file target.c.
References i, _ffetarget_char_1_::length, _ffetarget_hollerith_::length, malloc_new_kp, memcpy, memset, NULL, p, _ffetarget_hollerith_::text, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_convert().
| ffebad ffetarget_convert_character1_integer4 | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacterSize | size, | |||
| ffetargetInteger4 | l, | |||
| mallocPool | pool | |||
| ) |
Definition at line 787 of file target.c.
References abort, assert, i, l1, l2, l4, _ffetarget_char_1_::length, malloc_new_kp, memcpy, memset, NULL, p, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_convert().
| ffebad ffetarget_convert_character1_logical4 | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacterSize | size, | |||
| ffetargetLogical4 | l, | |||
| mallocPool | pool | |||
| ) |
Definition at line 881 of file target.c.
References abort, assert, i, l1, l2, l4, _ffetarget_char_1_::length, malloc_new_kp, memcpy, memset, NULL, p, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_convert().
| ffebad ffetarget_convert_character1_typeless | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacterSize | size, | |||
| ffetargetTypeless | l, | |||
| mallocPool | pool | |||
| ) |
Definition at line 975 of file target.c.
References abort, assert, i, l1, l2, l4, _ffetarget_char_1_::length, malloc_new_kp, memcpy, memset, NULL, p, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_convert().
| ffebad ffetarget_divide_complex1 | ( | ffetargetComplex1 * | res, | |
| ffetargetComplex1 | l, | |||
| ffetargetComplex1 | r | |||
| ) |
Definition at line 1064 of file target.c.
References ffetarget_add_real1, ffetarget_divide_real1, ffetarget_iszero_real1, ffetarget_multiply_real1, ffetarget_real1_zero, ffetarget_subtract_real1, _ffetarget_complex_1_::imaginary, _ffetarget_complex_1_::real, tmp1, and tmp2.
Referenced by ffeexpr_collapse_divide().
| ffebad ffetarget_divide_complex2 | ( | ffetargetComplex2 * | res, | |
| ffetargetComplex2 | l, | |||
| ffetargetComplex2 | r | |||
| ) |
Definition at line 1121 of file target.c.
References ffetarget_add_real2, ffetarget_divide_real2, ffetarget_iszero_real2, ffetarget_multiply_real2, ffetarget_real2_zero, ffetarget_subtract_real2, _ffetarget_complex_2_::imaginary, _ffetarget_complex_2_::real, tmp1, and tmp2.
Referenced by ffeexpr_collapse_divide().
| ffebad ffetarget_eq_character1 | ( | bool * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 374 of file target.c.
References assert, _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_eq().
| ffebad ffetarget_ge_character1 | ( | bool * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 419 of file target.c.
References assert, _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_ge().
| ffebad ffetarget_gt_character1 | ( | bool * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 434 of file target.c.
References assert, _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_gt().
| bool ffetarget_hollerith | ( | ffetargetHollerith * | val, | |
| ffelexToken | integer, | |||
| mallocPool | pool | |||
| ) |
Definition at line 1182 of file target.c.
References ffelex_token_length, ffelex_token_text, _ffetarget_hollerith_::length, malloc_new_kp, memcpy, _ffetarget_hollerith_::text, and TRUE.
Referenced by ffebld_constant_new_hollerith().
| bool ffetarget_integer1 | ( | ffetargetInteger1 * | val, | |
| ffelexToken | integer | |||
| ) |
Definition at line 1268 of file target.c.
References assert, c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_type, ffelex_token_where_column, ffelex_token_where_line, FFELEX_typeNUMBER, FFETARGET_integerALMOST_BIG_MAGICAL, FFETARGET_integerBIG_MAGICAL, FFETARGET_integerFINISH_BIG_MAGICAL, p, TRUE, and x.
Referenced by ffebld_constant_new_integer1().
| void ffetarget_integer_bad_magical | ( | ffelexToken | t | ) |
Definition at line 1198 of file target.c.
References ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_where_column, and ffelex_token_where_line.
Referenced by ffeexpr_finished_(), and ffeexpr_reduce_().
| void ffetarget_integer_bad_magical_binary | ( | ffelexToken | integer, | |
| ffelexToken | minus | |||
| ) |
Definition at line 1210 of file target.c.
References ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_where_column, and ffelex_token_where_line.
Referenced by ffeexpr_reduce_().
| void ffetarget_integer_bad_magical_precedence | ( | ffelexToken | integer, | |
| ffelexToken | uminus, | |||
| ffelexToken | higher_op | |||
| ) |
Definition at line 1227 of file target.c.
References ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_where_column, and ffelex_token_where_line.
Referenced by ffeexpr_reduce_().
| void ffetarget_integer_bad_magical_precedence_binary | ( | ffelexToken | integer, | |
| ffelexToken | minus, | |||
| ffelexToken | higher_op | |||
| ) |
Definition at line 1246 of file target.c.
References ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_where_column, and ffelex_token_where_line.
Referenced by ffeexpr_reduce_().
| bool ffetarget_integerbinary | ( | ffetargetIntegerDefault * | val, | |
| ffelexToken | integer | |||
| ) |
Definition at line 1335 of file target.c.
References assert, c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_type, ffelex_token_where_column, ffelex_token_where_line, FFELEX_typeNAME, FFELEX_typeNUMBER, FFETARGET_integerALMOST_BIG_OVERFLOW_BINARY, FFETARGET_integerFINISH_BIG_OVERFLOW_BINARY, p, TRUE, and x.
Referenced by ffebld_constant_new_integerbinary().
| bool ffetarget_integerhex | ( | ffetargetIntegerDefault * | val, | |
| ffelexToken | integer | |||
| ) |
Definition at line 1428 of file target.c.
References assert, c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_type, ffelex_token_where_column, ffelex_token_where_line, FFELEX_typeNAME, FFELEX_typeNUMBER, FFETARGET_integerALMOST_BIG_OVERFLOW_HEX, FFETARGET_integerFINISH_BIG_OVERFLOW_HEX, hex_p, hex_value, p, TRUE, and x.
Referenced by ffebld_constant_new_integerhex().
| bool ffetarget_integeroctal | ( | ffetargetIntegerDefault * | val, | |
| ffelexToken | integer | |||
| ) |
Definition at line 1521 of file target.c.
References assert, c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_type, ffelex_token_where_column, ffelex_token_where_line, FFELEX_typeNAME, FFELEX_typeNUMBER, FFETARGET_integerALMOST_BIG_OVERFLOW_OCTAL, FFETARGET_integerFINISH_BIG_OVERFLOW_OCTAL, p, TRUE, and x.
Referenced by ffebld_constant_new_integeroctal().
| bool ffetarget_iszero_character1 | ( | ffetargetCharacter1 | constant | ) |
Definition at line 445 of file target.c.
References FALSE, i, _ffetarget_char_1_::length, _ffetarget_char_1_::text, and TRUE.
Referenced by ffebld_constant_is_zero().
| bool ffetarget_iszero_hollerith | ( | ffetargetHollerith | constant | ) |
Definition at line 457 of file target.c.
References FALSE, i, _ffetarget_hollerith_::length, _ffetarget_hollerith_::text, and TRUE.
Referenced by ffebld_constant_is_zero().
| void ffetarget_layout | ( | const char *error_text | UNUSED, | |
| ffetargetAlign * | alignment, | |||
| ffetargetAlign * | modulo, | |||
| ffetargetOffset * | size, | |||
| ffeinfoBasictype | bt, | |||
| ffeinfoKindtype | kt, | |||
| ffetargetCharacterSize | charsize, | |||
| ffetargetIntegerDefault | num_elements | |||
| ) |
Definition at line 473 of file target.c.
References assert, ffeinfo_type(), ffetarget_offset, ffetarget_offset_charsize, ffetarget_offset_multiply, ffetarget_offset_overflow, ffetype_alignment, ffetype_modulo, ffetype_size, NULL, and ok().
Referenced by ffeequiv_layout_cblock(), ffeequiv_layout_local_(), ffeequiv_offset_(), and ffestorag_exec_layout().
| ffebad ffetarget_le_character1 | ( | bool * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 389 of file target.c.
References assert, _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_le().
| ffebad ffetarget_lt_character1 | ( | bool * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 404 of file target.c.
References assert, _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_lt().
Definition at line 2521 of file target.c.
References BYTES_BIG_ENDIAN, HOST_WORDS_BIG_ENDIAN, memcpy, sorry(), and WORDS_BIG_ENDIAN.
| ffebad ffetarget_multiply_complex1 | ( | ffetargetComplex1 * | res, | |
| ffetargetComplex1 | l, | |||
| ffetargetComplex1 | r | |||
| ) |
Definition at line 1611 of file target.c.
References ffetarget_add_real1, ffetarget_multiply_real1, ffetarget_subtract_real1, _ffetarget_complex_1_::imaginary, _ffetarget_complex_1_::real, tmp1, and tmp2.
Referenced by ffeexpr_collapse_multiply().
| ffebad ffetarget_multiply_complex2 | ( | ffetargetComplex2 * | res, | |
| ffetargetComplex2 | l, | |||
| ffetargetComplex2 | r | |||
| ) |
Definition at line 1644 of file target.c.
References ffetarget_add_real2, ffetarget_multiply_real2, ffetarget_subtract_real2, _ffetarget_complex_2_::imaginary, _ffetarget_complex_2_::real, tmp1, and tmp2.
Referenced by ffeexpr_collapse_multiply().
| ffebad ffetarget_ne_character1 | ( | bool * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacter1 | r | |||
| ) |
Definition at line 516 of file target.c.
References assert, _ffetarget_char_1_::length, memcmp, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_ne().
| int ffetarget_num_digits_ | ( | ffelexToken | token | ) |
Definition at line 2560 of file target.c.
References assert, c, ffelex_token_length, ffelex_token_text, ffelex_token_type, FFELEX_typeCHARACTER, FFELEX_typeNAME, FFELEX_typeNUMBER, i, and NULL.
| ffebad ffetarget_power_complexdefault_integerdefault | ( | ffetargetComplexDefault * | res, | |
| ffetargetComplexDefault | l, | |||
| ffetargetIntegerDefault | r | |||
| ) |
Definition at line 1676 of file target.c.
References ffetarget_add_real1, ffetarget_divide_real1, ffetarget_iszero_real1, ffetarget_multiply_real1, ffetarget_real1_one, ffetarget_real1_two, ffetarget_real1_zero, ffetarget_subtract_real1, ffetarget_uminus_real1, _ffetarget_complex_1_::imaginary, _ffetarget_complex_1_::real, tmp, tmp1, tmp2, and two.
Referenced by ffeexpr_collapse_power().
| ffebad ffetarget_power_complexdouble_integerdefault | ( | ffetargetComplexDouble * | res, | |
| ffetargetComplexDouble | l, | |||
| ffetargetIntegerDefault | r | |||
| ) |
Definition at line 1803 of file target.c.
References ffetarget_add_real2, ffetarget_divide_real2, ffetarget_iszero_real2, ffetarget_multiply_real2, ffetarget_real2_one, ffetarget_real2_two, ffetarget_real2_zero, ffetarget_subtract_real2, ffetarget_uminus_real2, _ffetarget_complex_2_::imaginary, _ffetarget_complex_2_::real, tmp, tmp1, tmp2, and two.
Referenced by ffeexpr_collapse_power().
| ffebad ffetarget_power_integerdefault_integerdefault | ( | ffetargetIntegerDefault * | res, | |
| ffetargetIntegerDefault | l, | |||
| ffetargetIntegerDefault | r | |||
| ) |
Definition at line 1929 of file target.c.
Referenced by ffedata_eval_integer1_(), and ffeexpr_collapse_power().
| ffebad ffetarget_power_realdefault_integerdefault | ( | ffetargetRealDefault * | res, | |
| ffetargetRealDefault | l, | |||
| ffetargetIntegerDefault | r | |||
| ) |
Definition at line 1982 of file target.c.
References ffetarget_divide_real1, ffetarget_iszero_real1, ffetarget_multiply_real1, ffetarget_real1_one, ffetarget_real1_zero, and one.
Referenced by ffeexpr_collapse_power().
| ffebad ffetarget_power_realdouble_integerdefault | ( | ffetargetRealDouble * | res, | |
| ffetargetRealDouble | l, | |||
| ffetargetIntegerDefault | r | |||
| ) |
Definition at line 2043 of file target.c.
References ffetarget_divide_real2, ffetarget_iszero_real2, ffetarget_multiply_real2, ffetarget_real2_one, ffetarget_real2_zero, and one.
Referenced by ffeexpr_collapse_power().
| void ffetarget_print_binary | ( | FILE * | f, | |
| ffetargetTypeless | value | |||
| ) |
Definition at line 121 of file target.c.
References fprintf(), fputc(), fputs(), and ISPRINT.
Referenced by ffetarget_print_character1(), and ffetarget_print_hollerith().
| void ffetarget_print_character1 | ( | FILE * | f, | |
| ffetargetCharacter1 | value | |||
| ) |
Definition at line 2131 of file target.c.
References dmpout, ffetarget_print_char_(), fputc(), i, _ffetarget_char_1_::length, p, and _ffetarget_char_1_::text.
| void ffetarget_print_hex | ( | FILE * | f, | |
| ffetargetTypeless | value | |||
| ) |
| void ffetarget_print_hollerith | ( | FILE * | f, | |
| ffetargetHollerith | value | |||
| ) |
Definition at line 2148 of file target.c.
References dmpout, ffetarget_print_char_(), fputc(), i, _ffetarget_hollerith_::length, p, and _ffetarget_hollerith_::text.
| void ffetarget_print_octal | ( | FILE * | f, | |
| ffetargetTypeless | value | |||
| ) |
| bool ffetarget_real1 | ( | ffetargetReal1 * | value, | |
| ffelexToken | integer, | |||
| ffelexToken | decimal, | |||
| ffelexToken | fraction, | |||
| ffelexToken | exponent, | |||
| ffelexToken | exponent_sign, | |||
| ffelexToken | exponent_digits | |||
| ) |
Definition at line 2222 of file target.c.
References ARRAY_SIZE, assert, dotok, dotoktxt, ffelex_token_type, FFELEX_typeMINUS, FFELEX_typePLUS, FFETARGET_ATOF_, ffetarget_make_real1, ffetarget_string_, malloc_kill_ks, malloc_new_ks, malloc_pool_image, NULL, p, ptr, q, sz(), and TRUE.
Referenced by ffebld_constant_new_real1().
| bool ffetarget_real2 | ( | ffetargetReal2 * | value, | |
| ffelexToken | integer, | |||
| ffelexToken | decimal, | |||
| ffelexToken | fraction, | |||
| ffelexToken | exponent, | |||
| ffelexToken | exponent_sign, | |||
| ffelexToken | exponent_digits | |||
| ) |
Definition at line 2303 of file target.c.
References ARRAY_SIZE, assert, dotok, dotoktxt, dotoktxtexp, ffelex_token_type, FFELEX_typeMINUS, FFELEX_typePLUS, FFETARGET_ATOF_, ffetarget_make_real2, ffetarget_string_, malloc_kill_ks, malloc_new_ks, malloc_pool_image, NULL, p, ptr, q, sz(), and TRUE.
Referenced by ffebld_constant_new_real2().
| ffebad ffetarget_substr_character1 | ( | ffetargetCharacter1 * | res, | |
| ffetargetCharacter1 | l, | |||
| ffetargetCharacterSize | first, | |||
| ffetargetCharacterSize | last, | |||
| mallocPool | pool, | |||
| ffetargetCharacterSize * | len | |||
| ) |
Definition at line 536 of file target.c.
References _ffetarget_char_1_::length, malloc_new_kp, memcpy, NULL, and _ffetarget_char_1_::text.
Referenced by ffeexpr_collapse_substr().
| bool ffetarget_typeless_binary | ( | ffetargetTypeless * | xvalue, | |
| ffelexToken | token | |||
| ) |
Definition at line 2378 of file target.c.
References c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_where_column, ffelex_token_where_line, ISDIGIT, new_value, overflow, p, and TRUE.
| bool ffetarget_typeless_hex | ( | ffetargetTypeless * | xvalue, | |
| ffelexToken | token | |||
| ) |
Definition at line 2466 of file target.c.
References c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_where_column, ffelex_token_where_line, hex_p, hex_value, new_value, overflow, p, and TRUE.
| bool ffetarget_typeless_octal | ( | ffetargetTypeless * | xvalue, | |
| ffelexToken | token | |||
| ) |
Definition at line 2422 of file target.c.
References c, FALSE, ffebad_finish(), ffebad_here(), ffebad_start, ffelex_token_text, ffelex_token_where_column, ffelex_token_where_line, ISDIGIT, new_value, overflow, p, and TRUE.
| void ffetarget_verify_character1 | ( | mallocPool | pool, | |
| ffetargetCharacter1 | val | |||
| ) |
Definition at line 2510 of file target.c.
References _ffetarget_char_1_::length, malloc_verify_kp, and _ffetarget_char_1_::text.
Referenced by ffebld_constant_new_character1_val().
| HOST_WIDE_INT ffetarget_long_junk_ |
| HOST_WIDE_INT ffetarget_long_val_ |
| char ffetarget_string_[40] |
1.5.6