Commit 7a40b8b1 by Jan Hubicka Committed by Jan Hubicka

bitmap.c (bitmap_and, [...]): Turn internal datastructure checks into checking asserts.

	* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
	bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
	bitmap_ior_into, bitmap_xor, bitmap_xor_into,
	bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal datastructure
	checks into checking asserts.
	* rtlanal.c (find_reg_note): Use gcc_checking_assert.
	* tree-ssa-sccvn.c (VN_INFO): Likewise.
	* df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
	df_ref_create_structure): Likewise.
	* alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
	pool_free): Use gcc_checking_assert.
	* alias.c (get_alias_set): Likewise.
	* var-tracking.c (variable_htab_free, shared_hash_copy,
	canonicalize_values_mark, variable_merge_over_cur): Likewise.
	* lto-streamer.c (bp_unpack_value): Likewise.

From-SVN: r160681
parent 0f398cb4
2010-06-13 Jan Hubicka <jh@suse.cz>
* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
bitmap_ior_into, bitmap_xor, bitmap_xor_into,
bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal datastructure
checks into checking asserts.
* rtlanal.c (find_reg_note): Use gcc_checking_assert.
* tree-ssa-sccvn.c (VN_INFO): Likewise.
* df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
df_ref_create_structure): Likewise.
* alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
pool_free): Use gcc_checking_assert.
* alias.c (get_alias_set): Likewise.
* var-tracking.c (variable_htab_free, shared_hash_copy,
canonicalize_values_mark, variable_merge_over_cur): Likewise.
* lto-streamer.c (bp_unpack_value): Likewise.
2010-06-13 Richard Guenther <rguenther@suse.de> 2010-06-13 Richard Guenther <rguenther@suse.de>
* lto-streamer-in.c (lto_input_ts_type_tree_pointers): * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
......
...@@ -713,7 +713,7 @@ get_alias_set (tree t) ...@@ -713,7 +713,7 @@ get_alias_set (tree t)
t = TYPE_CANONICAL (t); t = TYPE_CANONICAL (t);
/* Canonical types shouldn't form a tree nor should the canonical /* Canonical types shouldn't form a tree nor should the canonical
type require structural equality checks. */ type require structural equality checks. */
gcc_assert (!TYPE_STRUCTURAL_EQUALITY_P (t) && TYPE_CANONICAL (t) == t); gcc_checking_assert (!TYPE_STRUCTURAL_EQUALITY_P (t) && TYPE_CANONICAL (t) == t);
/* If this is a type with a known alias set, return it. */ /* If this is a type with a known alias set, return it. */
if (TYPE_ALIAS_SET_KNOWN_P (t)) if (TYPE_ALIAS_SET_KNOWN_P (t))
...@@ -1136,7 +1136,7 @@ record_set (rtx dest, const_rtx set, void *data ATTRIBUTE_UNUSED) ...@@ -1136,7 +1136,7 @@ record_set (rtx dest, const_rtx set, void *data ATTRIBUTE_UNUSED)
regno = REGNO (dest); regno = REGNO (dest);
gcc_assert (regno < VEC_length (rtx, reg_base_value)); gcc_checking_assert (regno < VEC_length (rtx, reg_base_value));
/* If this spans multiple hard registers, then we must indicate that every /* If this spans multiple hard registers, then we must indicate that every
register has an unusable value. */ register has an unusable value. */
......
...@@ -137,7 +137,7 @@ create_alloc_pool (const char *name, size_t size, size_t num) ...@@ -137,7 +137,7 @@ create_alloc_pool (const char *name, size_t size, size_t num)
struct alloc_pool_descriptor *desc; struct alloc_pool_descriptor *desc;
#endif #endif
gcc_assert (name); gcc_checking_assert (name);
/* Make size large enough to store the list header. */ /* Make size large enough to store the list header. */
if (size < sizeof (alloc_pool_list)) if (size < sizeof (alloc_pool_list))
...@@ -152,7 +152,7 @@ create_alloc_pool (const char *name, size_t size, size_t num) ...@@ -152,7 +152,7 @@ create_alloc_pool (const char *name, size_t size, size_t num)
#endif #endif
/* Um, we can't really allocate 0 elements per block. */ /* Um, we can't really allocate 0 elements per block. */
gcc_assert (num); gcc_checking_assert (num);
/* Allocate memory for the pool structure. */ /* Allocate memory for the pool structure. */
pool = XNEW (struct alloc_pool_def); pool = XNEW (struct alloc_pool_def);
...@@ -201,7 +201,7 @@ empty_alloc_pool (alloc_pool pool) ...@@ -201,7 +201,7 @@ empty_alloc_pool (alloc_pool pool)
struct alloc_pool_descriptor *desc = alloc_pool_descriptor (pool->name); struct alloc_pool_descriptor *desc = alloc_pool_descriptor (pool->name);
#endif #endif
gcc_assert (pool); gcc_checking_assert (pool);
/* Free each block allocated to the pool. */ /* Free each block allocated to the pool. */
for (block = pool->block_list; block != NULL; block = next_block) for (block = pool->block_list; block != NULL; block = next_block)
...@@ -260,7 +260,7 @@ pool_alloc (alloc_pool pool) ...@@ -260,7 +260,7 @@ pool_alloc (alloc_pool pool)
desc->peak = desc->current; desc->peak = desc->current;
#endif #endif
gcc_assert (pool); gcc_checking_assert (pool);
/* If there are no more free elements, make some more!. */ /* If there are no more free elements, make some more!. */
if (!pool->returned_free_list) if (!pool->returned_free_list)
...@@ -328,19 +328,19 @@ pool_free (alloc_pool pool, void *ptr) ...@@ -328,19 +328,19 @@ pool_free (alloc_pool pool, void *ptr)
struct alloc_pool_descriptor *desc = alloc_pool_descriptor (pool->name); struct alloc_pool_descriptor *desc = alloc_pool_descriptor (pool->name);
#endif #endif
gcc_assert (ptr);
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
/* Check whether the PTR was allocated from POOL. */ gcc_assert (ptr
gcc_assert (pool->id == ALLOCATION_OBJECT_PTR_FROM_USER_PTR (ptr)->id); /* Check if we free more than we allocated, which is Bad (TM). */
&& pool->elts_free < pool->elts_allocated
/* Check whether the PTR was allocated from POOL. */
&& pool->id == ALLOCATION_OBJECT_PTR_FROM_USER_PTR (ptr)->id);
memset (ptr, 0xaf, pool->elt_size - offsetof (allocation_object, u.data)); memset (ptr, 0xaf, pool->elt_size - offsetof (allocation_object, u.data));
/* Mark the element to be free. */ /* Mark the element to be free. */
ALLOCATION_OBJECT_PTR_FROM_USER_PTR (ptr)->id = 0; ALLOCATION_OBJECT_PTR_FROM_USER_PTR (ptr)->id = 0;
#else #else
/* Check if we free more than we allocated, which is Bad (TM). */
gcc_assert (pool->elts_free < pool->elts_allocated);
#endif #endif
header = (alloc_pool_list) ptr; header = (alloc_pool_list) ptr;
......
...@@ -927,7 +927,7 @@ bitmap_and (bitmap dst, const_bitmap a, const_bitmap b) ...@@ -927,7 +927,7 @@ bitmap_and (bitmap dst, const_bitmap a, const_bitmap b)
/* Ensure that dst->current is valid. */ /* Ensure that dst->current is valid. */
dst->current = dst->first; dst->current = dst->first;
bitmap_elt_clear_from (dst, dst_elt); bitmap_elt_clear_from (dst, dst_elt);
gcc_assert (!dst->current == !dst->first); gcc_checking_assert (!dst->current == !dst->first);
if (dst->current) if (dst->current)
dst->indx = dst->current->indx; dst->indx = dst->current->indx;
} }
...@@ -975,8 +975,8 @@ bitmap_and_into (bitmap a, const_bitmap b) ...@@ -975,8 +975,8 @@ bitmap_and_into (bitmap a, const_bitmap b)
} }
} }
bitmap_elt_clear_from (a, a_elt); bitmap_elt_clear_from (a, a_elt);
gcc_assert (!a->current == !a->first gcc_checking_assert (!a->current == !a->first
&& (!a->current || a->indx == a->current->indx)); && (!a->current || a->indx == a->current->indx));
} }
...@@ -1119,7 +1119,7 @@ bitmap_and_compl (bitmap dst, const_bitmap a, const_bitmap b) ...@@ -1119,7 +1119,7 @@ bitmap_and_compl (bitmap dst, const_bitmap a, const_bitmap b)
changed = true; changed = true;
bitmap_elt_clear_from (dst, dst_elt); bitmap_elt_clear_from (dst, dst_elt);
} }
gcc_assert (!dst->current == !dst->first); gcc_checking_assert (!dst->current == !dst->first);
if (dst->current) if (dst->current)
dst->indx = dst->current->indx; dst->indx = dst->current->indx;
...@@ -1175,8 +1175,8 @@ bitmap_and_compl_into (bitmap a, const_bitmap b) ...@@ -1175,8 +1175,8 @@ bitmap_and_compl_into (bitmap a, const_bitmap b)
b_elt = b_elt->next; b_elt = b_elt->next;
} }
} }
gcc_assert (!a->current == !a->first gcc_checking_assert (!a->current == !a->first
&& (!a->current || a->indx == a->current->indx)); && (!a->current || a->indx == a->current->indx));
return changed != 0; return changed != 0;
} }
...@@ -1470,8 +1470,8 @@ bitmap_compl_and_into (bitmap a, const_bitmap b) ...@@ -1470,8 +1470,8 @@ bitmap_compl_and_into (bitmap a, const_bitmap b)
b_elt = b_elt->next; b_elt = b_elt->next;
} }
} }
gcc_assert (!a->current == !a->first gcc_checking_assert (!a->current == !a->first
&& (!a->current || a->indx == a->current->indx)); && (!a->current || a->indx == a->current->indx));
return; return;
} }
...@@ -1576,7 +1576,7 @@ bitmap_ior (bitmap dst, const_bitmap a, const_bitmap b) ...@@ -1576,7 +1576,7 @@ bitmap_ior (bitmap dst, const_bitmap a, const_bitmap b)
changed = true; changed = true;
bitmap_elt_clear_from (dst, dst_elt); bitmap_elt_clear_from (dst, dst_elt);
} }
gcc_assert (!dst->current == !dst->first); gcc_checking_assert (!dst->current == !dst->first);
if (dst->current) if (dst->current)
dst->indx = dst->current->indx; dst->indx = dst->current->indx;
return changed; return changed;
...@@ -1615,7 +1615,7 @@ bitmap_ior_into (bitmap a, const_bitmap b) ...@@ -1615,7 +1615,7 @@ bitmap_ior_into (bitmap a, const_bitmap b)
a_elt = *a_prev_pnext; a_elt = *a_prev_pnext;
} }
gcc_assert (!a->current == !a->first); gcc_checking_assert (!a->current == !a->first);
if (a->current) if (a->current)
a->indx = a->current->indx; a->indx = a->current->indx;
return changed; return changed;
...@@ -1693,7 +1693,7 @@ bitmap_xor (bitmap dst, const_bitmap a, const_bitmap b) ...@@ -1693,7 +1693,7 @@ bitmap_xor (bitmap dst, const_bitmap a, const_bitmap b)
/* Ensure that dst->current is valid. */ /* Ensure that dst->current is valid. */
dst->current = dst->first; dst->current = dst->first;
bitmap_elt_clear_from (dst, dst_elt); bitmap_elt_clear_from (dst, dst_elt);
gcc_assert (!dst->current == !dst->first); gcc_checking_assert (!dst->current == !dst->first);
if (dst->current) if (dst->current)
dst->indx = dst->current->indx; dst->indx = dst->current->indx;
} }
...@@ -1750,7 +1750,7 @@ bitmap_xor_into (bitmap a, const_bitmap b) ...@@ -1750,7 +1750,7 @@ bitmap_xor_into (bitmap a, const_bitmap b)
a_elt = next; a_elt = next;
} }
} }
gcc_assert (!a->current == !a->first); gcc_checking_assert (!a->current == !a->first);
if (a->current) if (a->current)
a->indx = a->current->indx; a->indx = a->current->indx;
} }
...@@ -1932,7 +1932,7 @@ bitmap_ior_and_compl (bitmap dst, const_bitmap a, const_bitmap b, const_bitmap k ...@@ -1932,7 +1932,7 @@ bitmap_ior_and_compl (bitmap dst, const_bitmap a, const_bitmap b, const_bitmap k
changed = true; changed = true;
bitmap_elt_clear_from (dst, dst_elt); bitmap_elt_clear_from (dst, dst_elt);
} }
gcc_assert (!dst->current == !dst->first); gcc_checking_assert (!dst->current == !dst->first);
if (dst->current) if (dst->current)
dst->indx = dst->current->indx; dst->indx = dst->current->indx;
...@@ -2028,7 +2028,7 @@ bitmap_ior_and_into (bitmap a, const_bitmap b, const_bitmap c) ...@@ -2028,7 +2028,7 @@ bitmap_ior_and_into (bitmap a, const_bitmap b, const_bitmap c)
} }
done: done:
gcc_assert (!a->current == !a->first); gcc_checking_assert (!a->current == !a->first);
if (a->current) if (a->current)
a->indx = a->current->indx; a->indx = a->current->indx;
return changed; return changed;
......
...@@ -1554,7 +1554,7 @@ df_reorganize_refs_by_reg_by_reg (struct df_ref_info *ref_info, ...@@ -1554,7 +1554,7 @@ df_reorganize_refs_by_reg_by_reg (struct df_ref_info *ref_info,
DF_REF_ID (ref) = offset++; DF_REF_ID (ref) = offset++;
count++; count++;
ref = DF_REF_NEXT_REG (ref); ref = DF_REF_NEXT_REG (ref);
gcc_assert (offset < ref_info->refs_size); gcc_checking_assert (offset < ref_info->refs_size);
} }
} }
if (include_uses) if (include_uses)
...@@ -1566,7 +1566,7 @@ df_reorganize_refs_by_reg_by_reg (struct df_ref_info *ref_info, ...@@ -1566,7 +1566,7 @@ df_reorganize_refs_by_reg_by_reg (struct df_ref_info *ref_info,
DF_REF_ID (ref) = offset++; DF_REF_ID (ref) = offset++;
count++; count++;
ref = DF_REF_NEXT_REG (ref); ref = DF_REF_NEXT_REG (ref);
gcc_assert (offset < ref_info->refs_size); gcc_checking_assert (offset < ref_info->refs_size);
} }
} }
if (include_eq_uses) if (include_eq_uses)
...@@ -1578,7 +1578,7 @@ df_reorganize_refs_by_reg_by_reg (struct df_ref_info *ref_info, ...@@ -1578,7 +1578,7 @@ df_reorganize_refs_by_reg_by_reg (struct df_ref_info *ref_info,
DF_REF_ID (ref) = offset++; DF_REF_ID (ref) = offset++;
count++; count++;
ref = DF_REF_NEXT_REG (ref); ref = DF_REF_NEXT_REG (ref);
gcc_assert (offset < ref_info->refs_size); gcc_checking_assert (offset < ref_info->refs_size);
} }
} }
ref_info->count[regno] = count; ref_info->count[regno] = count;
...@@ -2593,8 +2593,8 @@ df_install_ref (df_ref this_ref, ...@@ -2593,8 +2593,8 @@ df_install_ref (df_ref this_ref,
df->hard_regs_live_count[regno]++; df->hard_regs_live_count[regno]++;
} }
gcc_assert (DF_REF_NEXT_REG (this_ref) == NULL gcc_checking_assert (DF_REF_NEXT_REG (this_ref) == NULL
&& DF_REF_PREV_REG (this_ref) == NULL); && DF_REF_PREV_REG (this_ref) == NULL);
DF_REF_NEXT_REG (this_ref) = head; DF_REF_NEXT_REG (this_ref) = head;
...@@ -2789,19 +2789,19 @@ df_ref_create_structure (enum df_ref_class cl, ...@@ -2789,19 +2789,19 @@ df_ref_create_structure (enum df_ref_class cl,
{ {
case DF_REF_BASE: case DF_REF_BASE:
this_ref = (df_ref) pool_alloc (problem_data->ref_base_pool); this_ref = (df_ref) pool_alloc (problem_data->ref_base_pool);
gcc_assert (loc == NULL); gcc_checking_assert (loc == NULL);
break; break;
case DF_REF_ARTIFICIAL: case DF_REF_ARTIFICIAL:
this_ref = (df_ref) pool_alloc (problem_data->ref_artificial_pool); this_ref = (df_ref) pool_alloc (problem_data->ref_artificial_pool);
this_ref->artificial_ref.bb = bb; this_ref->artificial_ref.bb = bb;
gcc_assert (loc == NULL); gcc_checking_assert (loc == NULL);
break; break;
case DF_REF_REGULAR: case DF_REF_REGULAR:
this_ref = (df_ref) pool_alloc (problem_data->ref_regular_pool); this_ref = (df_ref) pool_alloc (problem_data->ref_regular_pool);
this_ref->regular_ref.loc = loc; this_ref->regular_ref.loc = loc;
gcc_assert (loc); gcc_checking_assert (loc);
break; break;
case DF_REF_EXTRACT: case DF_REF_EXTRACT:
...@@ -2810,7 +2810,7 @@ df_ref_create_structure (enum df_ref_class cl, ...@@ -2810,7 +2810,7 @@ df_ref_create_structure (enum df_ref_class cl,
DF_REF_EXTRACT_OFFSET (this_ref) = offset; DF_REF_EXTRACT_OFFSET (this_ref) = offset;
DF_REF_EXTRACT_MODE (this_ref) = mode; DF_REF_EXTRACT_MODE (this_ref) = mode;
this_ref->regular_ref.loc = loc; this_ref->regular_ref.loc = loc;
gcc_assert (loc); gcc_checking_assert (loc);
break; break;
} }
...@@ -2880,7 +2880,7 @@ df_ref_record (enum df_ref_class cl, ...@@ -2880,7 +2880,7 @@ df_ref_record (enum df_ref_class cl,
{ {
unsigned int regno; unsigned int regno;
gcc_assert (REG_P (reg) || GET_CODE (reg) == SUBREG); gcc_checking_assert (REG_P (reg) || GET_CODE (reg) == SUBREG);
regno = REGNO (GET_CODE (reg) == SUBREG ? SUBREG_REG (reg) : reg); regno = REGNO (GET_CODE (reg) == SUBREG ? SUBREG_REG (reg) : reg);
if (regno < FIRST_PSEUDO_REGISTER) if (regno < FIRST_PSEUDO_REGISTER)
......
...@@ -382,7 +382,7 @@ bp_unpack_value (struct bitpack_d *bp, unsigned nbits) ...@@ -382,7 +382,7 @@ bp_unpack_value (struct bitpack_d *bp, unsigned nbits)
unsigned ix; unsigned ix;
/* We cannot decode more bits than BITS_PER_BITPACK_WORD. */ /* We cannot decode more bits than BITS_PER_BITPACK_WORD. */
gcc_assert (nbits > 0 && nbits <= BITS_PER_BITPACK_WORD); gcc_checking_assert (nbits > 0 && nbits <= BITS_PER_BITPACK_WORD);
/* Compute which word contains the next NBITS. */ /* Compute which word contains the next NBITS. */
ix = bp_get_next_word (bp, nbits); ix = bp_get_next_word (bp, nbits);
......
...@@ -1694,7 +1694,7 @@ find_reg_note (const_rtx insn, enum reg_note kind, const_rtx datum) ...@@ -1694,7 +1694,7 @@ find_reg_note (const_rtx insn, enum reg_note kind, const_rtx datum)
{ {
rtx link; rtx link;
gcc_assert (insn); gcc_checking_assert (insn);
/* Ignore anything that is not an INSN, JUMP_INSN or CALL_INSN. */ /* Ignore anything that is not an INSN, JUMP_INSN or CALL_INSN. */
if (! INSN_P (insn)) if (! INSN_P (insn))
......
...@@ -176,7 +176,7 @@ VN_INFO (tree name) ...@@ -176,7 +176,7 @@ VN_INFO (tree name)
{ {
vn_ssa_aux_t res = VEC_index (vn_ssa_aux_t, vn_ssa_aux_table, vn_ssa_aux_t res = VEC_index (vn_ssa_aux_t, vn_ssa_aux_table,
SSA_NAME_VERSION (name)); SSA_NAME_VERSION (name));
gcc_assert (res); gcc_checking_assert (res);
return res; return res;
} }
......
...@@ -1167,7 +1167,7 @@ variable_htab_free (void *elem) ...@@ -1167,7 +1167,7 @@ variable_htab_free (void *elem)
variable var = (variable) elem; variable var = (variable) elem;
location_chain node, next; location_chain node, next;
gcc_assert (var->refcount > 0); gcc_checking_assert (var->refcount > 0);
var->refcount--; var->refcount--;
if (var->refcount > 0) if (var->refcount > 0)
...@@ -1370,7 +1370,7 @@ shared_hash_copy (shared_hash vars) ...@@ -1370,7 +1370,7 @@ shared_hash_copy (shared_hash vars)
static void static void
shared_hash_destroy (shared_hash vars) shared_hash_destroy (shared_hash vars)
{ {
gcc_assert (vars->refcount > 0); gcc_checking_assert (vars->refcount > 0);
if (--vars->refcount == 0) if (--vars->refcount == 0)
{ {
htab_delete (vars->htab); htab_delete (vars->htab);
...@@ -3066,7 +3066,7 @@ canonicalize_values_mark (void **slot, void *data) ...@@ -3066,7 +3066,7 @@ canonicalize_values_mark (void **slot, void *data)
if (!dv_is_value_p (dv)) if (!dv_is_value_p (dv))
return 1; return 1;
gcc_assert (var->n_var_parts == 1); gcc_checking_assert (var->n_var_parts == 1);
val = dv_as_value (dv); val = dv_as_value (dv);
...@@ -3109,7 +3109,7 @@ canonicalize_values_star (void **slot, void *data) ...@@ -3109,7 +3109,7 @@ canonicalize_values_star (void **slot, void *data)
if (!dv_onepart_p (dv)) if (!dv_onepart_p (dv))
return 1; return 1;
gcc_assert (var->n_var_parts == 1); gcc_checking_assert (var->n_var_parts == 1);
if (dv_is_value_p (dv)) if (dv_is_value_p (dv))
{ {
...@@ -3299,8 +3299,8 @@ canonicalize_values_star (void **slot, void *data) ...@@ -3299,8 +3299,8 @@ canonicalize_values_star (void **slot, void *data)
/* Variable may have been unshared. */ /* Variable may have been unshared. */
var = (variable)*slot; var = (variable)*slot;
gcc_assert (var->n_var_parts && var->var_part[0].loc_chain->loc == cval gcc_checking_assert (var->n_var_parts && var->var_part[0].loc_chain->loc == cval
&& var->var_part[0].loc_chain->next == NULL); && var->var_part[0].loc_chain->next == NULL);
if (VALUE_RECURSED_INTO (cval)) if (VALUE_RECURSED_INTO (cval))
goto restart_with_cval; goto restart_with_cval;
...@@ -3389,14 +3389,14 @@ variable_merge_over_cur (variable s1var, struct dfset_merge *dsm) ...@@ -3389,14 +3389,14 @@ variable_merge_over_cur (variable s1var, struct dfset_merge *dsm)
/* If the incoming onepart variable has an empty location list, then /* If the incoming onepart variable has an empty location list, then
the intersection will be just as empty. For other variables, the intersection will be just as empty. For other variables,
it's always union. */ it's always union. */
gcc_assert (s1var->n_var_parts gcc_checking_assert (s1var->n_var_parts
&& s1var->var_part[0].loc_chain); && s1var->var_part[0].loc_chain);
if (!onepart) if (!onepart)
return variable_union (s1var, dst); return variable_union (s1var, dst);
gcc_assert (s1var->n_var_parts == 1 gcc_checking_assert (s1var->n_var_parts == 1
&& s1var->var_part[0].offset == 0); && s1var->var_part[0].offset == 0);
dvhash = dv_htab_hash (dv); dvhash = dv_htab_hash (dv);
if (dv_is_value_p (dv)) if (dv_is_value_p (dv))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment