Subject: Re: [PATCH 06/16] shortlog: add missing declaration

From: Junio C Hamano <[email-masked]>
Date: Thu, 31 Oct 2013 13:07:21 -0700

Felipe Contreras <[email-masked]> writes:

> On Thu, Oct 31, 2013 at 1:05 PM, Junio C Hamano <[email-masked]> wrote:
>> Felipe Contreras <[email-masked]> writes:
>>
>>> Otherwise we would have to include commit.h.
>>
>> Was there a reason why commit.h is not included here, just like
>> revision.h would include diff.h, so that users of shortlog.h do not
>> have to worry about including commit.h themselves?
>
> Because you can't do:
>
> struct diff_options;
> struct diff_options diffopt;
>
> The storage size is not known, but you can do:
>
> struct diff_options;
> struct diff_options *diffopt;

But so can you do

	struct diff_options *diffopt;

without the declaration, no?  That is:

	$ cat >x.c <<\EOF
        struct foo {
        	struct bar *ptr;
	};

        int foo_is_null(struct foo *foo)
        {
        	return foo == 0;
	}
	EOF
        $ gcc -Wall -c x.c