きしもとと申します

$ uname -a
FreeBSD norikura.localdomain 8.0-RC2 FreeBSD 8.0-RC2 #0 r198476: Mon Oct 26 
12:06:24 JST 2009     
ksmak...@norikura.localdomain:/usr/src/sys/amd64/compile/NORIKURA20091026  amd64

$ gcc --version
gcc (GCC) 4.2.1 20070719  [FreeBSD]
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

このような環境で、以下のようなソース

$ cat foo.c
static void foo(int *p) {
}

void bar(void) {
        const int a;
        foo((int *)&a);
}

をコンパイルすると、

$ gcc -c foo.c
$ gcc -c -O2 foo.c
foo.c: In function 'bar':
foo.c:6: warning: passing argument 1 of 'foo' discards qualifiers from pointer 
target type

のように、-O2 を付けると不可解な warning が出ます。
(constを落とすキャストの問題はわかってます)

既に報告されている問題でしょうか? また、報告する場合は FreeBSD と GCC の
どちらにすべきでしょうか?

メールによる返信