I was just reading this page: http://gcc.gnu.org/gcc-4.4/changes.html May I humbly draw your attention to this bullet point:
-Wparentheses now warns about expressions such as (!x | y) and (!x & y). Using explicit parentheses, such as in ((!x) | y)), silences this warning Note the extra parenthesis in the last expression. I hope I'm not wasting someone's time by pointing this out...