http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45878
Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2010.10.04 07:32:12 CC| |hubicka at gcc dot gnu.org, | |iains at gcc dot gnu.org Summary|Can't compile even a |[4.6 Regression] Can't |trivial ObjC program with |compile even a trivial ObjC |-fexceptions -O2 |program with -fexceptions | |-O2 Ever Confirmed|0 |1 --- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> 2010-10-04 07:32:12 UTC --- the change was: http://gcc.gnu.org/ml/gcc-cvs/2010-10/msg00090.html this also applies to any method call compiled with -fnext-runtime -O > 0. I looked at the gimple out from a trivial program at O0 and O1 and didn't see any material difference around the call construction - which implies that this is not an optimization problem, but simply that the check doesn't get exercised at O0). The code in question is gcc/objc/objc-act.c:6645-6722 It seems that, although we think we cast the function type in build_method_call, something is not working (or perhaps the type information is not set properly elsewhere). cc-ing Honza in case he has some ideas :-) ... .. (I discussed on irc with him and we came to the initial conclusion that this is prob. a FE problem).