From: Florian Krohm Date: Wed, 5 Aug 2015 12:09:55 +0000 (+0000) Subject: The number of elements in an OSet cannot be negative. X-Git-Tag: svn/VALGRIND_3_11_0~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99514d1d7f832555ddc7cf25decbdee156c578df;p=thirdparty%2Fvalgrind.git The number of elements in an OSet cannot be negative. Let the return type of VG_(OSetGen_Size) reflect that. Also fix a few casts. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15491 --- diff --git a/cachegrind/cg_main.c b/cachegrind/cg_main.c index dcc6220c42..f277f952ad 100644 --- a/cachegrind/cg_main.c +++ b/cachegrind/cg_main.c @@ -1698,11 +1698,11 @@ static void cg_fini(Int exitcode) VG_(dmsg)("cachegrind: with zero info:%6.1f%% (%d)\n", no_debugs * 100.0 / debug_lookups, no_debugs); - VG_(dmsg)("cachegrind: string table size: %lu\n", + VG_(dmsg)("cachegrind: string table size: %u\n", VG_(OSetGen_Size)(stringTable)); - VG_(dmsg)("cachegrind: CC table size: %lu\n", + VG_(dmsg)("cachegrind: CC table size: %u\n", VG_(OSetGen_Size)(CC_table)); - VG_(dmsg)("cachegrind: InstrInfo table size: %lu\n", + VG_(dmsg)("cachegrind: InstrInfo table size: %u\n", VG_(OSetGen_Size)(instrInfoTable)); } } diff --git a/coregrind/m_oset.c b/coregrind/m_oset.c index d1b1729366..358392ebcc 100644 --- a/coregrind/m_oset.c +++ b/coregrind/m_oset.c @@ -117,7 +117,7 @@ struct _OSet { OSetFree_t free_fn; // deallocator PoolAlloc* node_pa; // (optional) pool allocator for nodes. SizeT maxEltSize; // for node_pa, must be > 0. Otherwise unused. - Word nElems; // number of elements in the tree + UInt nElems; // number of elements in the tree AvlNode* root; // root node AvlNode* nodeStack[STACK_MAX]; // Iterator node stack @@ -912,7 +912,7 @@ void VG_(OSetGen_ResetIterAt)(AvlTree* oset, const void* k) /*--- Miscellaneous operations ---*/ /*--------------------------------------------------------------------*/ -Word VG_(OSetGen_Size)(const AvlTree* t) +UInt VG_(OSetGen_Size)(const AvlTree* t) { vg_assert(t); return t->nElems; diff --git a/include/pub_tool_oset.h b/include/pub_tool_oset.h index a52606cf65..a250c1f44f 100644 --- a/include/pub_tool_oset.h +++ b/include/pub_tool_oset.h @@ -298,7 +298,7 @@ extern OSet* VG_(OSetGen_EmptyClone) (const OSet* os); // they will return NULL if VG_(OSetGen_Next)() is called without an // intervening call to VG_(OSetGen_ResetIter)(). -extern Word VG_(OSetGen_Size) ( const OSet* os ); +extern UInt VG_(OSetGen_Size) ( const OSet* os ); extern void VG_(OSetGen_Insert) ( OSet* os, void* elem ); extern Bool VG_(OSetGen_Contains) ( const OSet* os, const void* key ); extern void* VG_(OSetGen_Lookup) ( const OSet* os, const void* key ); diff --git a/memcheck/mc_leakcheck.c b/memcheck/mc_leakcheck.c index 42aeacb7fb..84d4688684 100644 --- a/memcheck/mc_leakcheck.c +++ b/memcheck/mc_leakcheck.c @@ -899,11 +899,10 @@ lc_push_with_clique_if_a_chunk_ptr(Addr ptr, Int clique, Int cur_clique) if (VG_DEBUG_CLIQUE) { if (ex->IorC.indirect_szB > 0) VG_(printf)(" clique %d joining clique %d adding %lu+%lu\n", - ch_no, clique, (unsigned long)ch->szB, - (unsigned long)ex->IorC.indirect_szB); + ch_no, clique, (SizeT)ch->szB, ex->IorC.indirect_szB); else VG_(printf)(" block %d joining clique %d adding %lu\n", - ch_no, clique, (unsigned long)ch->szB); + ch_no, clique, (SizeT)ch->szB); } lc_extras[clique].IorC.indirect_szB += ch->szB; @@ -1178,8 +1177,8 @@ static Int cmp_LossRecords(const void* va, const void* vb) // allocates or reallocates lr_array, and set its elements to the loss records // contains in lr_table. -static Int get_lr_array_from_lr_table(void) { - Int i, n_lossrecords; +static UInt get_lr_array_from_lr_table(void) { + UInt i, n_lossrecords; LossRecord* lr; n_lossrecords = VG_(OSetGen_Size)(lr_table); @@ -1321,7 +1320,7 @@ static void print_results(ThreadId tid, LeakCheckParams* lcp) if (VG_DEBUG_LEAKCHECK) VG_(printf)("heuristic %s %#lx len %lu\n", pp_heuristic(ex->heuristic), - ch->data, (unsigned long)ch->szB); + ch->data, (SizeT)ch->szB); } old_lr = VG_(OSetGen_Lookup)(lr_table, &lrkey); @@ -1511,7 +1510,7 @@ static void print_results(ThreadId tid, LeakCheckParams* lcp) static void print_clique (Int clique, UInt level) { Int ind; - Int i, n_lossrecords;; + UInt i, n_lossrecords; n_lossrecords = VG_(OSetGen_Size)(lr_table); @@ -1522,7 +1521,7 @@ static void print_clique (Int clique, UInt level) MC_Chunk* ind_ch = lc_chunks[ind]; LossRecord* ind_lr; LossRecordKey ind_lrkey; - Int lr_i; + UInt lr_i; ind_lrkey.state = ind_ex->state; ind_lrkey.allocated_at = MC_(allocated_at)(ind_ch); ind_lr = VG_(OSetGen_Lookup)(lr_table, &ind_lrkey); @@ -1531,13 +1530,13 @@ static void print_clique (Int clique, UInt level) break; for (i = 0; i < level; i++) VG_(umsg)(" "); - VG_(umsg)("%p[%lu] indirect loss record %d\n", - (void *)ind_ch->data, (unsigned long)ind_ch->szB, + VG_(umsg)("%p[%lu] indirect loss record %u\n", + (void *)ind_ch->data, (SizeT)ind_ch->szB, lr_i+1); // lr_i+1 for user numbering. if (lr_i >= n_lossrecords) VG_(umsg) ("error: no indirect loss record found for %p[%lu]?????\n", - (void *)ind_ch->data, (unsigned long)ind_ch->szB); + (void *)ind_ch->data, (SizeT)ind_ch->szB); print_clique(ind, level+1); } } @@ -1545,7 +1544,7 @@ static void print_clique (Int clique, UInt level) Bool MC_(print_block_list) ( UInt loss_record_nr) { - Int i, n_lossrecords; + UInt i, n_lossrecords; LossRecord* lr; if (lr_table == NULL || lc_chunks == NULL || lc_extras == NULL) { @@ -1584,7 +1583,7 @@ Bool MC_(print_block_list) ( UInt loss_record_nr) // If this is the loss record we are looking for, output the pointer. if (old_lr == lr_array[loss_record_nr]) { VG_(umsg)("%p[%lu]\n", - (void *)ch->data, (unsigned long) ch->szB); + (void *)ch->data, (SizeT)ch->szB); if (ex->state != Reachable) { // We can print the clique in all states, except Reachable. // In Unreached state, lc_chunk[i] is the clique leader. @@ -1598,7 +1597,7 @@ Bool MC_(print_block_list) ( UInt loss_record_nr) } else { // No existing loss record matches this chunk ??? VG_(umsg)("error: no loss record found for %p[%lu]?????\n", - (void *)ch->data, (unsigned long) ch->szB); + (void *)ch->data, (SizeT)ch->szB); } } return True;