git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [FYI PATCH] t/helper/test-lazy-name-hash: fix compilation
@ 2017-12-18 21:49 Stefan Beller
  2017-12-18 23:43 ` Jonathan Tan
  2017-12-19 14:19 ` Jeff Hostetler
  0 siblings, 2 replies; 7+ messages in thread
From: Stefan Beller @ 2017-12-18 21:49 UTC (permalink / raw)
  To: git; +Cc: Stefan Beller

I was compiling origin/master today with stricter compiler flags today
and was greeted by

t/helper/test-lazy-init-name-hash.c: In function ‘cmd_main’:
t/helper/test-lazy-init-name-hash.c:172:5: error: ‘nr_threads_used’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
     printf("avg [size %8d] [single %f] %c [multi %f %d]\n",
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         nr,
         ~~~
         (double)avg_single/1000000000,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         (avg_single < avg_multi ? '<' : '>'),
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         (double)avg_multi/1000000000,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         nr_threads_used);
         ~~~~~~~~~~~~~~~~
t/helper/test-lazy-init-name-hash.c:115:6: note: ‘nr_threads_used’ was declared here
  int nr_threads_used;
      ^~~~~~~~~~~~~~~

I do not see how we can arrive at that line without having `nr_threads_used`
initialized, as we'd have `count > 1`  (which asserts that we ran the
loop above at least once, such that it *should* be initialized).

I do not have time to dive into further analysis.

Signed-off-by: Stefan Beller <sbeller@google.com>
---
 t/helper/test-lazy-init-name-hash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/helper/test-lazy-init-name-hash.c b/t/helper/test-lazy-init-name-hash.c
index 6368a89345..297fb01d61 100644
--- a/t/helper/test-lazy-init-name-hash.c
+++ b/t/helper/test-lazy-init-name-hash.c
@@ -112,7 +112,7 @@ static void analyze_run(void)
 {
 	uint64_t t1s, t1m, t2s, t2m;
 	int cache_nr_limit;
-	int nr_threads_used;
+	int nr_threads_used = 0;
 	int i;
 	int nr;
 
-- 
2.15.1.620.gb9897f4670-goog


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [FYI PATCH] t/helper/test-lazy-name-hash: fix compilation
  2017-12-18 21:49 [FYI PATCH] t/helper/test-lazy-name-hash: fix compilation Stefan Beller
@ 2017-12-18 23:43 ` Jonathan Tan
  2017-12-19 14:19 ` Jeff Hostetler
  1 sibling, 0 replies; 7+ messages in thread
From: Jonathan Tan @ 2017-12-18 23:43 UTC (permalink / raw)
  To: Stefan Beller; +Cc: git

On Mon, 18 Dec 2017 13:49:47 -0800
Stefan Beller <sbeller@google.com> wrote:

> I was compiling origin/master today with stricter compiler flags today
> and was greeted by
> 
> t/helper/test-lazy-init-name-hash.c: In function ‘cmd_main’:
> t/helper/test-lazy-init-name-hash.c:172:5: error: ‘nr_threads_used’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>      printf("avg [size %8d] [single %f] %c [multi %f %d]\n",
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          nr,
>          ~~~
>          (double)avg_single/1000000000,
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          (avg_single < avg_multi ? '<' : '>'),
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          (double)avg_multi/1000000000,
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          nr_threads_used);
>          ~~~~~~~~~~~~~~~~
> t/helper/test-lazy-init-name-hash.c:115:6: note: ‘nr_threads_used’ was declared here
>   int nr_threads_used;
>       ^~~~~~~~~~~~~~~
> 
> I do not see how we can arrive at that line without having `nr_threads_used`
> initialized, as we'd have `count > 1`  (which asserts that we ran the
> loop above at least once, such that it *should* be initialized).

Your analysis makes sense. (The compiler probably couldn't detect it because
"count" is a static variable, not a local variable.)

> --- a/t/helper/test-lazy-init-name-hash.c
> +++ b/t/helper/test-lazy-init-name-hash.c
> @@ -112,7 +112,7 @@ static void analyze_run(void)
>  {
>  	uint64_t t1s, t1m, t2s, t2m;
>  	int cache_nr_limit;
> -	int nr_threads_used;
> +	int nr_threads_used = 0;
>  	int i;
>  	int nr;

I agree that this is probably the best way to fix it. Another way might
be to omit printing out the number of threads used in the printf that
prints the average statistics.

The best way is probably to not use so many global variables, but that
is out of scope of this change.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [FYI PATCH] t/helper/test-lazy-name-hash: fix compilation
  2017-12-18 21:49 [FYI PATCH] t/helper/test-lazy-name-hash: fix compilation Stefan Beller
  2017-12-18 23:43 ` Jonathan Tan
@ 2017-12-19 14:19 ` Jeff Hostetler
  2017-12-20 22:24   ` [PATCH] " Stefan Beller
  1 sibling, 1 reply; 7+ messages in thread
From: Jeff Hostetler @ 2017-12-19 14:19 UTC (permalink / raw)
  To: Stefan Beller, git



On 12/18/2017 4:49 PM, Stefan Beller wrote:
> I was compiling origin/master today with stricter compiler flags today
> and was greeted by
> 
> t/helper/test-lazy-init-name-hash.c: In function ‘cmd_main’:
> t/helper/test-lazy-init-name-hash.c:172:5: error: ‘nr_threads_used’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>       printf("avg [size %8d] [single %f] %c [multi %f %d]\n",
>       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           nr,
>           ~~~
>           (double)avg_single/1000000000,
>           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           (avg_single < avg_multi ? '<' : '>'),
>           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           (double)avg_multi/1000000000,
>           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           nr_threads_used);
>           ~~~~~~~~~~~~~~~~
> t/helper/test-lazy-init-name-hash.c:115:6: note: ‘nr_threads_used’ was declared here
>    int nr_threads_used;
>        ^~~~~~~~~~~~~~~
> 
> I do not see how we can arrive at that line without having `nr_threads_used`
> initialized, as we'd have `count > 1`  (which asserts that we ran the
> loop above at least once, such that it *should* be initialized).
> 
> I do not have time to dive into further analysis.
> 
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
>   t/helper/test-lazy-init-name-hash.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/t/helper/test-lazy-init-name-hash.c b/t/helper/test-lazy-init-name-hash.c
> index 6368a89345..297fb01d61 100644
> --- a/t/helper/test-lazy-init-name-hash.c
> +++ b/t/helper/test-lazy-init-name-hash.c
> @@ -112,7 +112,7 @@ static void analyze_run(void)
>   {
>   	uint64_t t1s, t1m, t2s, t2m;
>   	int cache_nr_limit;
> -	int nr_threads_used;
> +	int nr_threads_used = 0;
>   	int i;
>   	int nr;

Agreed. It should not be a problem.  Explicitly initializing it is fine.


Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] t/helper/test-lazy-name-hash: fix compilation
  2017-12-19 14:19 ` Jeff Hostetler
@ 2017-12-20 22:24   ` Stefan Beller
  2017-12-22 18:15     ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Beller @ 2017-12-20 22:24 UTC (permalink / raw)
  To: git; +Cc: git, sbeller, Jeff Hostetler

I was compiling origin/master today with the DEVELOPER compiler flags
today and was greeted by

t/helper/test-lazy-init-name-hash.c: In function ‘cmd_main’:
t/helper/test-lazy-init-name-hash.c:172:5: error: ‘nr_threads_used’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
     printf("avg [size %8d] [single %f] %c [multi %f %d]\n",
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         nr,
         ~~~
         (double)avg_single/1000000000,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         (avg_single < avg_multi ? '<' : '>'),
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         (double)avg_multi/1000000000,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         nr_threads_used);
         ~~~~~~~~~~~~~~~~
t/helper/test-lazy-init-name-hash.c:115:6: note: ‘nr_threads_used’ was declared here
  int nr_threads_used;
      ^~~~~~~~~~~~~~~

Fix this issue by assigning 0 to 'nr_threads_used'.

Acked-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
---

Slightly reworded the commit message. I'd really like this patch to be included
such that I can compile git with the DEVELOPER_CFLAGS flags.

 t/helper/test-lazy-init-name-hash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/helper/test-lazy-init-name-hash.c b/t/helper/test-lazy-init-name-hash.c
index 6368a89345..297fb01d61 100644
--- a/t/helper/test-lazy-init-name-hash.c
+++ b/t/helper/test-lazy-init-name-hash.c
@@ -112,7 +112,7 @@ static void analyze_run(void)
 {
 	uint64_t t1s, t1m, t2s, t2m;
 	int cache_nr_limit;
-	int nr_threads_used;
+	int nr_threads_used = 0;
 	int i;
 	int nr;
 
-- 
2.15.1.620.gb9897f4670-goog


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] t/helper/test-lazy-name-hash: fix compilation
  2017-12-20 22:24   ` [PATCH] " Stefan Beller
@ 2017-12-22 18:15     ` Junio C Hamano
  2017-12-22 18:17       ` Stefan Beller
  0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2017-12-22 18:15 UTC (permalink / raw)
  To: Stefan Beller; +Cc: git, git, Jeff Hostetler

Stefan Beller <sbeller@google.com> writes:

> I was compiling origin/master today with the DEVELOPER compiler flags
> today and was greeted by
>
> t/helper/test-lazy-init-name-hash.c: In function ‘cmd_main’:
> t/helper/test-lazy-init-name-hash.c:172:5: error: ‘nr_threads_used’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>      printf("avg [size %8d] [single %f] %c [multi %f %d]\n",
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          nr,
>          ~~~
>          (double)avg_single/1000000000,
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          (avg_single < avg_multi ? '<' : '>'),
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          (double)avg_multi/1000000000,
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          nr_threads_used);
>          ~~~~~~~~~~~~~~~~
> t/helper/test-lazy-init-name-hash.c:115:6: note: ‘nr_threads_used’ was declared here
>   int nr_threads_used;
>       ^~~~~~~~~~~~~~~
>
> Fix this issue by assigning 0 to 'nr_threads_used'.
>
> Acked-by: Jonathan Tan <jonathantanmy@google.com>
> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
>
> Slightly reworded the commit message. I'd really like this patch to be included
> such that I can compile git with the DEVELOPER_CFLAGS flags.

Heh; I do not think there particularly is much difference between
stricter flags and DEVELOPER flags, but I would rather not lose the
removal of duplicated 'today' I did while I queued the previous one
;-)

>
>  t/helper/test-lazy-init-name-hash.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/helper/test-lazy-init-name-hash.c b/t/helper/test-lazy-init-name-hash.c
> index 6368a89345..297fb01d61 100644
> --- a/t/helper/test-lazy-init-name-hash.c
> +++ b/t/helper/test-lazy-init-name-hash.c
> @@ -112,7 +112,7 @@ static void analyze_run(void)
>  {
>  	uint64_t t1s, t1m, t2s, t2m;
>  	int cache_nr_limit;
> -	int nr_threads_used;
> +	int nr_threads_used = 0;
>  	int i;
>  	int nr;

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] t/helper/test-lazy-name-hash: fix compilation
  2017-12-22 18:15     ` Junio C Hamano
@ 2017-12-22 18:17       ` Stefan Beller
  2017-12-22 20:02         ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Beller @ 2017-12-22 18:17 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Jeff Hostetler, git, Jeff Hostetler

> Heh; I do not think there particularly is much difference between
> stricter flags and DEVELOPER flags, but I would rather not lose the
> removal of duplicated 'today' I did while I queued the previous one
> ;-)


I did not realize it was queued anywhere, please ignore then.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] t/helper/test-lazy-name-hash: fix compilation
  2017-12-22 18:17       ` Stefan Beller
@ 2017-12-22 20:02         ` Junio C Hamano
  0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2017-12-22 20:02 UTC (permalink / raw)
  To: Stefan Beller; +Cc: Jeff Hostetler, git, Jeff Hostetler

Stefan Beller <sbeller@google.com> writes:

>> Heh; I do not think there particularly is much difference between
>> stricter flags and DEVELOPER flags, but I would rather not lose the
>> removal of duplicated 'today' I did while I queued the previous one
>> ;-)
>
>
> I did not realize it was queued anywhere, please ignore then.

I just did s/stricter/DEVELOPER/ on the one that have been queued.
Thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-12-22 20:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-18 21:49 [FYI PATCH] t/helper/test-lazy-name-hash: fix compilation Stefan Beller
2017-12-18 23:43 ` Jonathan Tan
2017-12-19 14:19 ` Jeff Hostetler
2017-12-20 22:24   ` [PATCH] " Stefan Beller
2017-12-22 18:15     ` Junio C Hamano
2017-12-22 18:17       ` Stefan Beller
2017-12-22 20:02         ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).