* cppexp.c (possible_sum_sign, integer_overflow, left_shift,
right_shift): Remove. (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART, HIGH_PART): New. (struct op): Use cpp_num. (num_zerop, num_eq, num_positive, num_greater_freq, num_trim, num_part_mul, num_unary_op, num_binary_op, num_negate, num_bitwise_op, num_inequality_op, num_equality_op, num_mul, num_div_op, num_lshift, num_rshift, append_digit): New. (interpret_number, parse_defined, eval_token, reduce): Update for two-integer arithmetic. (binary_handler): New typedef. (optab): Update. (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete. (_cpp_parse_expr, reduce): Update to handle two-integers. * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF. testsuite: * gcc.dg/cpp/arith-1.c: New semantic tests. * gcc.dg/cpp/if-1.c: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53900 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/ChangeLog 19 additions, 0 deletionsgcc/ChangeLog
- gcc/cppexp.c 805 additions, 319 deletionsgcc/cppexp.c
- gcc/cpplib.c 2 additions, 0 deletionsgcc/cpplib.c
- gcc/testsuite/ChangeLog 5 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.dg/cpp/arith-1.c 257 additions, 0 deletionsgcc/testsuite/gcc.dg/cpp/arith-1.c
- gcc/testsuite/gcc.dg/cpp/if-1.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/cpp/if-1.c
Loading
Please register or sign in to comment