summaryrefslogtreecommitdiffstats
path: root/arith.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-10-17 20:17:22 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-10-17 20:17:22 -0700
commit9b18f519decaf0cd7f52571c3c44012e3fc23a3a (patch)
tree5848a0bfd530e51183dbbf1e201a56ccf437fbd1 /arith.c
parent9f158a44b7e88c1dcfb8d56f4f85d642fc423b59 (diff)
downloadtxr-9b18f519decaf0cd7f52571c3c44012e3fc23a3a.tar.gz
txr-9b18f519decaf0cd7f52571c3c44012e3fc23a3a.tar.bz2
txr-9b18f519decaf0cd7f52571c3c44012e3fc23a3a.zip
Converting cast expressions to macros that are retargetted
to C++ style casts when compiling as C++. * lib.h (strip_qual, convert, coerce): New casting macros. (TAG_MASK, tag, type, wli_noex, auto_str, static_str, litptr, num_fast, chr, lit_noex, nil, nao): Use cast macros. * arith.c (mul, isqrt_fixnum, bit): Use cast macros. * configure (INT_PTR_MAX): Define using cast macro. * debug.c (debug_init): Use cast macro. * eval.c (do_eval, expand_macro, reg_op, reg_mac, eval_init): Use cast macros. * filter.c (filter_init): Use cast macro. * gc.c (more, mark_obj, in_heap, mark, sweep_one, unmark): Use cast macros. * hash.c (hash_double, equal_hash, eql_hash, hash_equal_op, hash_hash_op, hash_print_op, hash_mark, make_hash, make_similar_hash, copy_hash, gethash_c, gethash, gethash_f, gethash_n, remhash, hash_count, get_hash_userdata, set_hash_userdata, hash_iter_destroy, hash_iter_mark, hash_begin, hash_uni, hash_diff, hash_isec): Use cast macros. * lib.c (code2type, chk_malloc, chk_malloc_gc_more, chk_calloc, chk_realloc, chk_strdup, num, c_num, string, mkstring, mkustring, upcase_str, downcase_str, string_extend, sub_str, cat_str, trim_str, c_chr, vector, vec_set_length, copy_vec, sub_vec, cat_vec, cobj_print_op, obj_init): Likewise. * match.c (do_match_line, hv_trampoline, match_files, dir_tables_init): Likewise. * parser.l (grammar): Likewise. * parser.y (parse): Likewise. * rand.c (make_state, make_random_state, random_fixnum, random): Likewise. * regex.c (CHAR_SET_L2_LO, CHAR_SET_L2_HI, CHAR_SET_L1_LO, CHAR_SET_L1_HI, CHAR_SET_L0_LO, CHAR_SET_L0_HI, L0_full, L0_fill_range, L1_full, L1_fill_range, L1_contains, L1_free, L2_full, L2_fill_range, L2_contains, L2_free, L3_fill_range, L3_contains, L3_free, char_set_create, char_set_cobj_destroy, nfa_state_accept, nfa_state_empty, nfa_state_single, nfa_state_wild, nfa_state_set,
Diffstat (limited to 'arith.c')
-rw-r--r--arith.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arith.c b/arith.c
index 7699ad11..79f0d224 100644
--- a/arith.c
+++ b/arith.c
@@ -571,7 +571,7 @@ tail:
cnum a = c_num(anum);
cnum b = c_num(bnum);
#if HAVE_DOUBLE_INTPTR_T
- double_intptr_t product = a * (double_intptr_t) b;
+ double_intptr_t product = a * convert(double_intptr_t, b);
if (product < NUM_MIN || product > NUM_MAX)
return bignum_dbl_ipt(product);
return num_fast(product);
@@ -1330,7 +1330,7 @@ bad:
static int_ptr_t isqrt_fixnum(int_ptr_t a)
{
- int_ptr_t mask = (int_ptr_t) 1 << (highest_bit(a) / 2);
+ int_ptr_t mask = convert(int_ptr_t, 1) << (highest_bit(a) / 2);
int_ptr_t root = 0;
for (; mask != 0; mask >>= 1) {
@@ -1898,7 +1898,7 @@ val bit(val a, val bit)
{
cnum an = c_num(a);
if (bn < (SIZEOF_PTR * CHAR_BIT))
- return (an & ((cnum) 1 << bn)) ? t : nil;
+ return (an & (convert(cnum, 1) << bn)) ? t : nil;
return an < 0 ? t : nil;
}
case BGNUM: