http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52718
--- Comment #14 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-11-01 19:07:10 UTC --- Ok, I can reproduce this. Note, I don't think it's the same issue reported here earlier. Apparently something is going wrong with the pragma. A WA is writing: Bar(Foo = Foo(0)); in this case the warning is correctly suppressed. The 0 in the Foo constructor doesn't matter, the warning is correctly suppressed and you can as well remove it from the testcase. I'm looking into this, hopefully can be fixed without reworking too many diagnostic things outside this specific warning proper.