Suppress all -Wunused-value warnings from macro body expansions.
authorMatt Beaumont-Gay <matthewbg@google.com>
Thu, 17 Jan 2013 02:06:08 +0000 (02:06 +0000)
committerMatt Beaumont-Gay <matthewbg@google.com>
Thu, 17 Jan 2013 02:06:08 +0000 (02:06 +0000)
commit978cca9f49a1c0e3a01096017c9a34726866fbf3
treec513b2ae6119b9ecbee691724a4a93d2479319e2
parenteaa75a69ad5d7e2279b58d9c2b6fc4aea35b1aa1
Suppress all -Wunused-value warnings from macro body expansions.

This is inspired by a number of false positives in real code, including
PR14968. I've added test cases reduced from these false positives to
test/Sema/unused-expr.c, as well as corresponding test cases that pass the
offending expressions as arguments to a no-op macro to ensure that we do warn
there.

This also removes my previous tweak from r166522/r166534, so that we warn on
unused cast expressions in macro arguments.

There were several test cases that were using -Wunused-value to test general
diagnostic emission features; I changed those to use other warnings or warn on
a macro argument expression. I stared at the test case for PR14399 for a while
with Richard Smith and we believe the new test case exercises the same
codepaths as before.

llvm-svn: 172696
clang/lib/AST/Expr.cpp
clang/lib/Sema/SemaStmt.cpp
clang/test/Misc/caret-diags-macros.c
clang/test/Preprocessor/pragma_microsoft.c
clang/test/Sema/unused-expr.c