On Wed, Nov 08, 2017 at 08:07:42AM +0100, Martin Liška wrote:
> diff --git a/gcc/gimplify.c b/gcc/gimplify.c
> index c4fd5038d92..9563d825a6a 100644
> --- a/gcc/gimplify.c
> +++ b/gcc/gimplify.c
> @@ -2223,7 +2223,8 @@ expand_FALLTHROUGH_r (gimple_stmt_iterator *gsi_p, bool 
> *handled_ops_p,
>         while (!gsi_end_p (gsi2))
>           {
>             stmt = gsi_stmt (gsi2);
> -           if (gimple_code (stmt) == GIMPLE_LABEL)
> +           enum gimple_code gc = gimple_code (stmt);
> +           if (gc == GIMPLE_LABEL)
>               {
>                 tree label = gimple_label_label (as_a <glabel *> (stmt));
>                 if (gimple_has_location (stmt) && DECL_ARTIFICIAL (label))
> @@ -2232,8 +2233,11 @@ expand_FALLTHROUGH_r (gimple_stmt_iterator *gsi_p, 
> bool *handled_ops_p,
>                     break;
>                   }
>               }
> +           else if (gc == GIMPLE_CALL
> +                    && gimple_call_internal_p (stmt, IFN_ASAN_MARK))
> +             ;

I thought you could simply use gimple_call_internal_p (stmt, IFN_ASAN_MARK)
here.

> --- /dev/null
> +++ b/gcc/testsuite/g++.dg/asan/pr82792.C
> @@ -0,0 +1,32 @@
> +/* PR sanitizer/82792 */
> +/* { dg-do compile } */
> +/* { dg-options "-fsanitize=address" } */

And shouldn't this use -Wextra or -Wimplicit-fallthrough to check whether
the warning is really gone?

        Marek

Reply via email to