------- Comment #10 from hjl dot tools at gmail dot com 2008-07-23 01:04
-------
(In reply to comment #9)
> > I said "It comes from an application." It isn't from system header file.
>
> Yes, and that doesn't answer my question. I asked if the pragma is able to
> suppress a warning triggered by your kind of snippet, IF, when, it appears in
> an header file: I asked about an HYPOTHETICAL situation, not your actual
> situation. Is that more clear?
>
It doesn't make a difference:
[EMAIL PROTECTED] tmp]$ cat y.h
#pragma GCC system_header
static inline unsigned char *
foo(unsigned char * to, const unsigned char * from, int n)
{
switch ( n )
{
case 3:
*to = *from;
break;
case 5:
to[4] = from [4];
break;
}
return to;
}
[EMAIL PROTECTED] tmp]$ cat y.c
#include <y.h>
struct {
int size_of_select;
unsigned char pcr_select[4];
} sel;
int main(int argc, char *argv[])
{
static unsigned char buf[64];
sel.size_of_select = 3;
foo(buf, sel.pcr_select, sel.size_of_select);
return 1;
}
[EMAIL PROTECTED] tmp]$ gcc -Wall -O2 -c y.c -Werror -I.
cc1: warnings being treated as errors
y.c: In function âmainâ:
./y.h:11: error: array subscript is above array bounds
[EMAIL PROTECTED] tmp]$
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36902