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