Re: [PATCH v2 3/8] diff-delta.c: "delta.h" is not a required include

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nicolas Pitre wrote:
> On Fri, 5 Jun 2009, Brandon Casey wrote:
> 
>> From: Brandon Casey <drafnel@xxxxxxxxx>
>>
>> When compiling diff-delta.c with the SUNWspro C99 compiler, it complains
>>
>>     "diff-delta.c", line 314: identifier redeclared: create_delta
>>
>> There is nothing in "delta.h" that is required by diff-delta.c, so don't
>> include it.
>>
>> Signed-off-by: Brandon Casey <drafnel@xxxxxxxxx>
> 
> NAK.
> 
> This is common practice to include the header file declaring function 
> prototypes into the file defining the actual function so to make sure 
> the declaration matches with the definition.  Deleting that include is 
> actively ignoring a problem instead of fixing the cause of it.


It doesn't seem to like the structure being redeclared with a flex array
member and being passed as a const argument.


# cat > test.c <<EOF

struct a_struct;

extern void *test_func(const struct a_struct *f);

struct a_struct {
        int a;
        int b;
        char* c[];
};

void *test_func(const struct a_struct *f)
{
        return 0;
}
EOF

# /opt/SUNWspro/bin/c99 -c test.c 
"test.c", line 13: identifier redeclared: test_func
        current : function(pointer to const struct a_struct {int a, int b, array[-1] of pointer to char c}) returning pointer to void
        previous: function(pointer to const struct a_struct {int a, int b, array[-1] of pointer to char c}) returning pointer to void : "test.c", line 4
c99: acomp failed for test.c


If either the flex array is removed from the structure, or const is removed from
test_func argument, test.c will compile.  Compiling with -O0 doesn't help.

-brandon
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]