On Tue, Nov 01, 2016 at 03:47:54PM +0100, Martin Liška wrote:
> On 10/27/2016 07:23 PM, Jakub Jelinek wrote:
> > Ok for trunk with that change.
> > 
> >     Jakub
> 
> Hello.
> 
> I'll commit the patch as soon as following patch would be accepted. The patch
> fixes false positives when running asan-bootstrap.

What kind of false positives it is for each case?  Is it with normal
asan-bootstrap (without your -fsanitize-use-after-scope changes), or
only with those changes, or only with those changes and
-fsanitize-use-after-scope used during bootstrap?

> >From b62e4d7ffe659ec338ef83e84ccb572a07264283 Mon Sep 17 00:00:00 2001
> From: marxin <mli...@suse.cz>
> Date: Tue, 20 Sep 2016 10:31:25 +0200
> Subject: [PATCH 1/4] Fix ASAN bootstrap uninitialized warning.
> 
> gcc/ChangeLog:
> 
> 2016-09-26  Martin Liska  <mli...@suse.cz>
> 
>       * ipa-devirt.c (record_targets_from_bases): Initialize a
>       variable.
>       * omp-low.c (lower_omp_target): Remove a variable from
>       scope defined by a switch statement.
>       * tree-dump.c (dequeue_and_dump): Likewise.
> 
> gcc/java/ChangeLog:
> 
> 2016-09-26  Martin Liska  <mli...@suse.cz>
> 
>       * mangle.c (mangle_type): Remove a variable from
>       scope defined by a switch statement.
> ---
>  gcc/ipa-devirt.c |  2 +-
>  gcc/omp-low.c    | 11 ++++-------
>  gcc/tree-dump.c  |  8 +++-----
>  3 files changed, 8 insertions(+), 13 deletions(-)
> 
> diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
> index 49e2195..5c0ae72 100644
> --- a/gcc/ipa-devirt.c
> +++ b/gcc/ipa-devirt.c
> @@ -2862,7 +2862,7 @@ record_targets_from_bases (tree otr_type,
>  {
>    while (true)
>      {
> -      HOST_WIDE_INT pos, size;
> +      HOST_WIDE_INT pos = 0, size;
>        tree base_binfo;
>        tree fld;
>  
> diff --git a/gcc/omp-low.c b/gcc/omp-low.c
> index e5b9e4c..62c9e5c 100644
> --- a/gcc/omp-low.c
> +++ b/gcc/omp-low.c
> @@ -15803,11 +15803,10 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, 
> omp_context *ctx)
>    push_gimplify_context ();
>    fplist = NULL;
>  
> +  tree var, x;
>    for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
>      switch (OMP_CLAUSE_CODE (c))
>        {
> -     tree var, x;
> -
>        default:
>       break;
>        case OMP_CLAUSE_MAP:
> @@ -16066,12 +16065,11 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, 
> omp_context *ctx)
>        vec_alloc (vkind, map_cnt);
>        unsigned int map_idx = 0;
>  
> +      tree ovar, nc, s, purpose, var, x, type;
> +      unsigned int talign;
>        for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
>       switch (OMP_CLAUSE_CODE (c))
>         {
> -         tree ovar, nc, s, purpose, var, x, type;
> -         unsigned int talign;
> -
>         default:
>           break;
>  
> @@ -16442,10 +16440,10 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, 
> omp_context *ctx)
>    if (offloaded || data_region)
>      {
>        tree prev = NULL_TREE;
> +      tree var, x;
>        for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
>       switch (OMP_CLAUSE_CODE (c))
>         {
> -         tree var, x;
>         default:
>           break;
>         case OMP_CLAUSE_FIRSTPRIVATE:
> @@ -16594,7 +16592,6 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, 
> omp_context *ctx)
>        for (c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
>       switch (OMP_CLAUSE_CODE (c))
>         {
> -         tree var;
>         default:
>           break;
>         case OMP_CLAUSE_MAP:
> diff --git a/gcc/tree-dump.c b/gcc/tree-dump.c
> index df47181..89f72a0 100644
> --- a/gcc/tree-dump.c
> +++ b/gcc/tree-dump.c
> @@ -420,8 +420,6 @@ dequeue_and_dump (dump_info_p di)
>    /* Now handle the various kinds of nodes.  */
>    switch (code)
>      {
> -      int i;
> -
>      case IDENTIFIER_NODE:
>        dump_string_field (di, "strg", IDENTIFIER_POINTER (t));
>        dump_int (di, "lngt", IDENTIFIER_LENGTH (t));
> @@ -435,6 +433,7 @@ dequeue_and_dump (dump_info_p di)
>  
>      case STATEMENT_LIST:
>        {
> +     int i;
>       tree_stmt_iterator it;
>       for (i = 0, it = tsi_start (t); !tsi_end_p (it); tsi_next (&it), i++)
>         {
> @@ -447,7 +446,7 @@ dequeue_and_dump (dump_info_p di)
>  
>      case TREE_VEC:
>        dump_int (di, "lngt", TREE_VEC_LENGTH (t));
> -      for (i = 0; i < TREE_VEC_LENGTH (t); ++i)
> +      for (int i = 0; i < TREE_VEC_LENGTH (t); ++i)
>       {
>         char buffer[32];
>         sprintf (buffer, "%u", i);
> @@ -707,9 +706,8 @@ dequeue_and_dump (dump_info_p di)
>        break;
>      case OMP_CLAUSE:
>        {
> -     int i;
>       fprintf (di->stream, "%s\n", omp_clause_code_name[OMP_CLAUSE_CODE (t)]);
> -     for (i = 0; i < omp_clause_num_ops[OMP_CLAUSE_CODE (t)]; i++)
> +     for (int i = 0; i < omp_clause_num_ops[OMP_CLAUSE_CODE (t)]; i++)
>         dump_child ("op: ", OMP_CLAUSE_OPERAND (t, i));
>        }
>        break;
> -- 
> 2.10.1
> 


        Jakub

Reply via email to