From: René Scharfe Date: Mon, 01 May 2017 11:23:28 GMT Subject: Re: [PATCH] cache-tree: reject entries with null sha1 Message-ID: <12c3312c-30a1-2cb1-8f05-63bb663bd0a0@web.de> In-Reply-To: Am 24.04.2017 um 12:39 schrieb Duy Nguyen: > BTW, I ran t7009 with valgrind and it reported this. Is it something > we should be worried about? I vaguely recall you're doing something > with prio-queue... > > ==4246== Source and destination overlap in memcpy(0x5952990, 0x5952990, 16) > ==4246== at 0x4C2EACD: memcpy@@GLIBC_2.14 (in > /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) > ==4246== by 0x545D05: swap (prio-queue.c:15) > ==4246== by 0x545D72: prio_queue_reverse (prio-queue.c:25) > ==4246== by 0x4CBC0C: sort_in_topological_order (commit.c:723) > ==4246== by 0x574C97: prepare_revision_walk (revision.c:2858) > ==4246== by 0x48A2BA: cmd_rev_list (rev-list.c:385) > ==4246== by 0x405A6F: run_builtin (git.c:371) > ==4246== by 0x405CDC: handle_builtin (git.c:572) > ==4246== by 0x405E51: run_argv (git.c:624) > ==4246== by 0x405FF3: cmd_main (git.c:701) > ==4246== by 0x4A48CE: main (common-main.c:43) I can only get gcc and clang to call memcpy instead of inlining it by specifying -fno-builtin. Do you use that option? If yes, why? (Just curious.) But I can't get Valgrind to report overlapping (nicely explained in http://valgrind.org/docs/manual/mc-manual.html#mc-manual.overlap, by the way), not for t7009 and not for the short test program at the bottom. Do you set flags in GIT_VALGRIND_OPTIONS or use a special version of Valgrind? I use valgrind-3.12.0.SVN from Debian testing. Thanks, René /* Compile with -fno-builtin. */ #include int main(void) {int i = 1; memcpy(&i, &i, sizeof(i)); return i;}