[cfe-commits] r166522 - in /cfe/trunk: lib/AST/Expr.cpp test/Sema/unused-expr.c

Eli Friedman eli.friedman at gmail.com
Tue Oct 23 16:57:02 PDT 2012


On Tue, Oct 23, 2012 at 4:19 PM, Matt Beaumont-Gay <matthewbg at google.com> wrote:
> Author: matthewbg
> Date: Tue Oct 23 18:19:32 2012
> New Revision: 166522
>
> URL: http://llvm.org/viewvc/llvm-project?rev=166522&view=rev
> Log:
> Don't emit -Wunused-value warnings from macro expansions.
>
> Modified:
>     cfe/trunk/lib/AST/Expr.cpp
>     cfe/trunk/test/Sema/unused-expr.c
>
> Modified: cfe/trunk/lib/AST/Expr.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Expr.cpp?rev=166522&r1=166521&r2=166522&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/Expr.cpp (original)
> +++ cfe/trunk/lib/AST/Expr.cpp Tue Oct 23 18:19:32 2012
> @@ -2026,6 +2026,10 @@
>    }
>    case CXXFunctionalCastExprClass:
>    case CStyleCastExprClass: {
> +    // Ignore casts within macro expansions.
> +    if (getExprLoc().isMacroID())
> +      return false;

A few issues:

1. Please move this below the special-case for casts to void.
2. "Ignore" in this context should be written as "return
CE->getSubExpr()->isUnusedResultAWarning(WarnE, Loc, R1, R2, Ctx);";
we don't want to completely suppress unused-value warnings just
because there's a cast in a macro.  (e.g. "(long)1" should still be
treated as an unused value).

-Eli



More information about the cfe-commits mailing list