Re: [PATCH] Fix vmi time header bug

Linus Torvalds
2007-03-13T17:53:21Z

On Tue, 13 Mar 2007, Andrew Morton wrote:
>
> (The ARM thing is a pain, because the compiler cannot check that the
> definition and declaration match. However something like sparse could do
> so).

Well, I guess sparse could do it, but the fact is, this is just a gcc bug.
It would be much better if *gcc* just checked the function attributes it
cared about. Anybody want to send a bug-report to the gcc lists?

Here's a trivial test-case.

#define section(x) __attribute__((__section__(x)))

extern int section(".text.one") test_function(int);

int section(".text.two") test_function(int arg)
{
return arg+1;
}

and the bug is that gcc doesn't warn about the section mismatch, and still
seems to care.

(Now, if gcc doesn't care, missing the section from the declaration could
be considered ok. But having explicit but *different* section declarations
can clearly not be ok, and it seems that gcc sometimes *does* require
sections to match, so it probably should always require them to match
exactly).

We could make sparse care, but right now sparse ignores the section
attribute *entirely*.

Linus