#include "config.h"#include "system.h"#include "cpplib.h"#include "internal.h"

Go to the source code of this file.
| #define HALF_MASK (~(cpp_num_part) 0 >> (PART_PRECISION / 2)) |
| #define HIGH_PART | ( | num_part | ) | (num_part >> (PART_PRECISION / 2)) |
| #define PART_PRECISION (sizeof (cpp_num_part) * CHAR_BIT) |
| struct op* _cpp_expand_op_stack | ( | cpp_reader * | pfile | ) | [read] |
Definition at line 988 of file expr.c.
References cpp_reader::op_limit, cpp_reader::op_stack, size_t, xrealloc(), and XRESIZEVEC.
| bool _cpp_parse_expr | ( | cpp_reader * | pfile | ) |
Definition at line 700 of file expr.c.
References _cpp_expand_op_stack(), cpp_token::c, CPP_DL_ICE, cpp_error(), cpp_get_token(), cpp_token_as_text(), CPP_UMINUS, CPP_UPLUS, DL_ICE, eval_token(), operator::flags, ISGRAPH, cpp_reader::mi_ind_cmacro, NO_L_OPERAND, num_zerop, op::op, cpp_reader::op_limit, cpp_reader::op_stack, optab, reduce(), lexer_state::skip_eval, cpp_reader::state, SYNTAX_ERROR, SYNTAX_ERROR2, op::token, top, cpp_token::val, and op::value.
Definition at line 418 of file expr.c.
References cpp_num::high, cpp_num::low, num_eq, num_trim(), overflow, cpp_num::overflow, PART_PRECISION, result, shift, and cpp_num::unsignedp.
| static void check_promotion | ( | cpp_reader * | pfile, | |
| const struct op * | op | |||
| ) | [static] |
Definition at line 1002 of file expr.c.
References CPP_DL_WARNING, cpp_error(), CPP_OPTION, cpp_token_as_text(), num_positive(), op::token, cpp_num::unsignedp, and op::value.
| unsigned int cpp_classify_number | ( | cpp_reader * | pfile, | |
| const cpp_token * | token | |||
| ) |
Definition at line 155 of file expr.c.
References c, CPP_DL_ERROR, CPP_DL_PEDWARN, CPP_DL_WARNING, cpp_error(), CPP_N_DECIMAL, CPP_N_DFLOAT, CPP_N_FLOATING, CPP_N_HEX, CPP_N_IMAGINARY, CPP_N_INTEGER, CPP_N_INVALID, CPP_N_LARGE, CPP_N_OCTAL, CPP_N_SMALL, CPP_N_UNSIGNED, CPP_N_WIDTH, CPP_OPTION, CPP_PEDANTIC, cpp_sys_macro_p(), CPP_WTRADITIONAL, DL_ERROR, DL_PEDWARN, DL_WARNING, hex_value, interpret_float_suffix(), interpret_int_suffix(), ISDIGIT, ISXDIGIT, cpp_string::len, result, str, cpp_token::str, SYNTAX_ERROR, SYNTAX_ERROR2, cpp_string::text, uchar, cpp_token::val, and warn_long_long.
| cpp_num cpp_interpret_integer | ( | cpp_reader * | pfile, | |
| const cpp_token * | token, | |||
| unsigned int | type | |||
| ) |
Definition at line 332 of file expr.c.
References append_digit(), base, c, CPP_DL_PEDWARN, CPP_DL_WARNING, cpp_error(), CPP_N_HEX, CPP_N_OCTAL, CPP_N_RADIX, CPP_N_UNSIGNED, CPP_OPTION, DL_PEDWARN, DL_WARNING, end, hex_value, cpp_num::high, lexer_state::in_directive, ISDIGIT, ISXDIGIT, cpp_string::len, cpp_num::low, max, num_positive(), cpp_num::overflow, overflow, p, PART_PRECISION, result, cpp_reader::state, cpp_token::str, cpp_string::text, uchar, cpp_num::unsignedp, and cpp_token::val.
Definition at line 1056 of file expr.c.
References cpp_num::high, cpp_num::low, PART_PRECISION, and cpp_num::unsignedp.
| static cpp_num eval_token | ( | cpp_reader * | pfile, | |
| const cpp_token * | token | |||
| ) | [static] |
Definition at line 537 of file expr.c.
References _cpp_test_assertion(), BITS_PER_CPPCHAR_T, cc, cpp_classify_number(), CPP_DL_ERROR, CPP_DL_WARNING, cpp_error(), cpp_interpret_charconst(), cpp_interpret_integer(), CPP_N_CATEGORY, CPP_N_FLOATING, CPP_N_IMAGINARY, CPP_N_INTEGER, CPP_N_INVALID, CPP_OPTION, cpp_num::high, cpp_num::low, spec_nodes::n_defined, spec_nodes::n_false, spec_nodes::n_true, cpp_token::node, NODE_NAME, num_trim(), cpp_num::overflow, parse_defined(), PART_PRECISION, result, lexer_state::skip_eval, cpp_reader::spec_nodes, cpp_reader::state, cpp_num::unsignedp, and cpp_token::val.
Definition at line 83 of file expr.c.
References CPP_N_DFLOAT, CPP_N_IMAGINARY, CPP_N_LARGE, CPP_N_MEDIUM, CPP_N_SMALL, d, f, and i.
Definition at line 121 of file expr.c.
References CPP_N_IMAGINARY, CPP_N_LARGE, CPP_N_MEDIUM, CPP_N_SMALL, CPP_N_UNSIGNED, and i.
| static cpp_num num_binary_op | ( | cpp_reader * | pfile, | |
| cpp_num | lhs, | |||
| cpp_num | rhs, | |||
| enum cpp_ttype | op | |||
| ) | [static] |
Definition at line 1303 of file expr.c.
References CPP_DL_PEDWARN, cpp_error(), CPP_OPTION, CPP_PEDANTIC, cpp_num::high, cpp_num::low, n, num_lshift(), num_negate(), num_positive(), num_rshift(), num_trim(), cpp_num::overflow, result, lexer_state::skip_eval, cpp_reader::state, and cpp_num::unsignedp.
| static cpp_num num_bitwise_op | ( | cpp_reader *pfile | ATTRIBUTE_UNUSED, | |
| cpp_num | lhs, | |||
| cpp_num | rhs, | |||
| enum cpp_ttype | op | |||
| ) | [static] |
Definition at line 1120 of file expr.c.
References cpp_num::high, cpp_num::low, cpp_num::overflow, and cpp_num::unsignedp.
| static cpp_num num_bitwise_op | ( | cpp_reader * | , | |
| cpp_num | , | |||
| cpp_num | , | |||
| enum | cpp_ttype | |||
| ) | [static] |
| static cpp_num num_div_op | ( | cpp_reader * | pfile, | |
| cpp_num | lhs, | |||
| cpp_num | rhs, | |||
| enum cpp_ttype | op | |||
| ) | [static] |
Definition at line 1450 of file expr.c.
References CPP_DL_ERROR, cpp_error(), CPP_OPTION, cpp_num::high, i, cpp_num::low, negate, num_binary_op(), num_greater_eq(), num_lshift(), num_negate(), num_positive(), cpp_num::overflow, PART_PRECISION, result, lexer_state::skip_eval, cpp_reader::state, sub, and cpp_num::unsignedp.
| static cpp_num num_equality_op | ( | cpp_reader *pfile | ATTRIBUTE_UNUSED, | |
| cpp_num | lhs, | |||
| cpp_num | rhs, | |||
| enum cpp_ttype | op | |||
| ) | [static] |
Definition at line 1171 of file expr.c.
References eq, cpp_num::high, cpp_num::low, num_eq, cpp_num::overflow, and cpp_num::unsignedp.
| static cpp_num num_equality_op | ( | cpp_reader * | , | |
| cpp_num | , | |||
| cpp_num | , | |||
| enum | cpp_ttype | |||
| ) | [static] |
Definition at line 1097 of file expr.c.
References cpp_num::high, cpp_num::low, num_positive(), and cpp_num::unsignedp.
| static cpp_num num_inequality_op | ( | cpp_reader * | pfile, | |
| cpp_num | lhs, | |||
| cpp_num | rhs, | |||
| enum cpp_ttype | op | |||
| ) | [static] |
Definition at line 1149 of file expr.c.
References CPP_OPTION, cpp_num::high, cpp_num::low, num_eq, num_greater_eq(), cpp_num::overflow, and cpp_num::unsignedp.
Definition at line 1228 of file expr.c.
References cpp_num::high, cpp_num::low, num_eq, num_rshift(), num_trim(), num_zerop, cpp_num::overflow, PART_PRECISION, and cpp_num::unsignedp.
| static cpp_num num_mul | ( | cpp_reader * | pfile, | |
| cpp_num | lhs, | |||
| cpp_num | rhs | |||
| ) | [static] |
Definition at line 1400 of file expr.c.
References CPP_OPTION, cpp_num::high, cpp_num::low, negate, num_eq, num_negate(), num_part_mul(), num_positive(), num_trim(), num_zerop, overflow, cpp_num::overflow, result, and cpp_num::unsignedp.
Definition at line 1080 of file expr.c.
References copy, cpp_num::high, cpp_num::low, num_eq, num_trim(), num_zerop, cpp_num::overflow, and cpp_num::unsignedp.
| static cpp_num num_part_mul | ( | cpp_num_part | lhs, | |
| cpp_num_part | rhs | |||
| ) | [static] |
Definition at line 1369 of file expr.c.
References cpp_num::high, HIGH_PART, cpp_num::low, LOW_PART, cpp_num::overflow, PART_PRECISION, result, and cpp_num::unsignedp.
Definition at line 1187 of file expr.c.
References cpp_num::high, cpp_num::low, num_positive(), num_trim(), cpp_num::overflow, PART_PRECISION, cpp_num::unsignedp, and x.
| static cpp_num num_unary_op | ( | cpp_reader * | pfile, | |
| cpp_num | num, | |||
| enum cpp_ttype | op | |||
| ) | [static] |
Definition at line 1268 of file expr.c.
References CPP_DL_WARNING, cpp_error(), CPP_OPTION, CPP_UMINUS, CPP_UPLUS, CPP_WTRADITIONAL, cpp_num::high, cpp_num::low, num_negate(), num_trim(), num_zerop, cpp_num::overflow, lexer_state::skip_eval, cpp_reader::state, and cpp_num::unsignedp.
| static cpp_num parse_defined | ( | cpp_reader * | pfile | ) | [static] |
Definition at line 467 of file expr.c.
References _cpp_mark_macro_used, cpp_reader::context, CPP_DL_ERROR, CPP_DL_WARNING, cpp_error(), cpp_get_token(), CPP_PEDANTIC, cpp_token_as_text(), cpp_token::flags, cpp_num::high, cpp_num::low, cpp_reader::mi_ind_cmacro, NAMED_OP, node, cpp_token::node, NT_MACRO, cpp_num::overflow, lexer_state::prevent_expansion, result, cpp_reader::state, token, cpp_num::unsignedp, and cpp_token::val.
Definition at line 846 of file expr.c.
References check_promotion(), CHECK_PROMOTION, CPP_DL_ERROR, CPP_DL_ICE, CPP_DL_PEDWARN, cpp_error(), CPP_LAST_CPP_OP, CPP_OPTION, CPP_UMINUS, CPP_UPLUS, operator::flags, cpp_num::high, LEFT_ASSOC, cpp_num::low, num_binary_op(), num_bitwise_op(), num_div_op(), num_equality_op(), num_inequality_op(), num_mul(), num_unary_op(), num_zerop, op::op, optab, cpp_num::overflow, operator::prio, lexer_state::skip_eval, cpp_reader::state, cpp_num::unsignedp, and op::value.
struct cpp_operator optab[] [static] |
1.5.6