きしもとと申します
$ uname -a
FreeBSD norikura.localdomain 8.0-RC2 FreeBSD 8.0-RC2 #0 r198476: Mon Oct 26
12:06:24 JST 2009
[email protected]:/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 の
どちらにすべきでしょうか?