------- Comment #2 from jwakely dot gcc at gmail dot com 2010-02-01 17:01 ------- I think the code is invalid. In 4.4 the expression (ptr != 0) converted ptr to an unspecified-bool-type and compared that to 0. In 4.5 the impicit conversion has been removed, and you need to say static_cast<bool>(ptr) or (bool)ptr instead. This is required by the current working draft
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42925