http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25466
Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |daniel.kruegler at | |googlemail dot com, jason | |at gcc dot gnu.org --- Comment #7 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-11-01 01:01:07 UTC --- In fact, I'm not so sure we have a bug here. C++11 5.2.8 says "the expression is obtained by applying the unary * operator to a pointer and the pointer is a null pointer value": does that mean *any* possible expression where a null pointer appears or just the expressions of the simple form clarified in note 68? In fact, if I add: polymorphic operator+(polymorphic, polymorphic); and change the typeid argument to: *(T*)0 + *(T*)0 then ICC doesn't throw. Why (result=true, *(T*)0) should be different?