To quote a GNOME developer's tutorial for using Valgrind:
Optimized code can cause valgrind to wrongly report uninitialized value errors. The authors know how to fix this, but it would make valgrind much slower (and it is already quite slow). The suggested fix for this is to not optimize when trying to debug code with valgrind. Not optimizing when debugging is a good rule of thumb anyway.
EDIT: broken link to a GNOME developer's blog post on "developing with GNOME" removed.
What type of optimizations would cause this, and how are they not real problems?