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