Mark, I think this is due to your fixes for 10931/10990/... yesterday: this doesn't compile any more though I think it should --------------------------- struct B {}; int main () { B a; (i ? static_cast<B&>(a) : *static_cast<B*>(&a)); } ---------------------------- tmp/gg> ~/tmp/build-gcc/gcc-install/bin/c++ -c x.cc x.cc: In function `int main()': x.cc:5: error: `i' undeclared (first use this function) x.cc:5: error: (Each undeclared identifier is reported only once for each function it appears in.) I don't have a recent enough 3.3 branch, but if your patch went to the branch as well, it should be investigated for 3.3.1 as well. The error above is from mainline. W.
Forget the code and the error message, of course. On shouldn't change it in the last minute. Here's the correct code and message: ------------------------------------ struct B {}; int main () { B a; (1 ? static_cast<B&>(a) : *static_cast<B*>(&a)); } ------------------------------------- tmp/gg> ~/tmp/build-gcc/gcc-install/bin/c++ -c x.cc x.cc: In function `int main()': x.cc:6: error: operands to ?: have different types
Subject: Re: [3.3?/3.4 regression] Spurious error with casts in ?: expression On Thu, 2003-06-26 at 09:46, bangerth at dealii dot org wrote: > PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11332 > > > > ------- Additional Comments From bangerth at dealii dot org 2003-06-26 16:46 ------- > Forget the code and the error message, of course. On shouldn't change it > in the last minute. Here's the correct code and message: I think I know what's wrong, and I'll get it fixed ASAP. Thanks,
Subject: Bug 11332 CVSROOT: /cvs/gcc Module name: gcc Changes by: mmitchel@gcc.gnu.org 2003-06-27 16:24:50 Modified files: gcc/cp : typeck.c ChangeLog gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/expr: static_cast2.C Log message: PR c++/11332 * typeck.c (build_static_cast): Avoid returning expressions with reference type. PR c++/11332 * g++.dg/expr/static_cast2.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&r1=1.468&r2=1.469 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.3459&r2=1.3460 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/static_cast2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.2807&r2=1.2808
Subject: Bug 11332 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_3-branch Changes by: mmitchel@gcc.gnu.org 2003-06-27 16:27:07 Modified files: gcc/cp : typeck.c ChangeLog gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/expr: static_cast2.C Log message: PR c++/11332 * typeck.c (build_static_cast): Avoid returning expressions with reference type. PR c++/11332 * g++.dg/expr/static_cast2.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.436.2.9&r2=1.436.2.10 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.3076.2.164&r2=1.3076.2.165 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/static_cast2.C.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=NONE&r2=1.1.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.2261.2.203&r2=1.2261.2.204
Fixed in GCC 3.3.1, GCC 3.4 with attached patches.