On Wed, 30 May 2007, Eric Dumazet wrote:
> Andrew Morton a �crit :
> > On Mon, 28 May 2007 21:16:31 +0200
> > Geert Uytterhoeven <[EMAIL PROTECTED]> wrote:
> > 
> > > --- a/include/asm-m68k/module.h
> > > +++ b/include/asm-m68k/module.h
> > > @@ -1,7 +1,38 @@
> > >  #ifndef _ASM_M68K_MODULE_H
> > >  #define _ASM_M68K_MODULE_H
> > > -struct mod_arch_specific { };
> > > +
> > > +struct mod_arch_specific {
> > > + struct m68k_fixup_info *fixup_start, *fixup_end;
> > > +};
> > 
> > Here we use struct m68k_fixup_info.
> > 
> > > +#define MODULE_ARCH_INIT {                               \
> > > + .fixup_start            = __start_fixup,        \
> > > + .fixup_end              = __stop_fixup,         \
> > > +}
> > > +
> > >  #define Elf_Shdr Elf32_Shdr
> > >  #define Elf_Sym Elf32_Sym
> > >  #define Elf_Ehdr Elf32_Ehdr
> > > +
> > > +
> > > +enum m68k_fixup_type {
> > > + m68k_fixup_memoffset,
> > > +};
> > > +
> > > +struct m68k_fixup_info {
> > > + enum m68k_fixup_type type;
> > > + void *addr;
> > > +};
> > 
> > and later we define it.
> > 
> > How come it doesn't spit warnings?
> > 
> > I think it could be tightened up even if it happens not to warn?
> 
> 
> struct a {
>       struct not_yet_defined *start, *end;
> };
> 
> struct not_yet_defined {
>       void *foo;
> };
> 
> Is a valid and gives no warnings.

I was puzzled by this as well, as there were no compiler warnings...

Apparently you get a warning only if the _first_ occurrence of a struct
is declared inside a parameter list of a function.

So even

    struct a {
        struct not_yet_defined *start, *end;
    };

    extern void f(struct not_yet_defined *start);

    struct not_yet_defined {
        void *foo;
    };

doesn't give a warning, because the first occurence is inside the
definition of struct a.

Gr{oetje,eeting}s,

                                                Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [EMAIL PROTECTED]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                                            -- Linus Torvalds

Reply via email to