きしもとと申します $ 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 の どちらにすべきでしょうか?