On 17/04/13 17:25, Kay Sievers wrote: > On Wed, Apr 17, 2013 at 6:08 PM, Henrik Grindal Bakken <h...@ifi.uio.no> > wrote: >> ExecContext isn't used in this header file, and everything seems to >> build just fine without this typedef. The typedef doesn't really belong >> here, and at least my gcc-4.4.6 gives an error on type redefined. > > Weird, this type of forward-declaration is a common pattern.
We had this bug in telepathy-glib too: "typedef struct Xyz Xyz;", seen once per translation unit, is fine. "typedef struct Xyz Xyz; typedef struct Xyz Xyz;" was an error in C89 and C99, but is allowed in C11. The portable thing to do is to have the typedef in exactly one header file (which doesn't necessarily have to be the same one that declares the contents of a "struct Xyz"), and have everything else that mentions Xyz include that header. S _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel