Hi. That fixes many UBSAN issues that are caused by:
{"all", dump_flags_t (~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_GRAPH | TDF_STMTADDR | TDF_RHS_ONLY | TDF_NOUID | TDF_ENUMERATE_LOCALS | TDF_SCEV | TDF_GIMPLE))}, That goes out of: minv = TYPE_MIN_VALUE (TREE_TYPE (type)); maxv = TYPE_MAX_VALUE (TREE_TYPE (type)); Thus I would like to limit value of "all". Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. And UBSAN errors are gone. Ready to be installed? Martin gcc/ChangeLog: 2018-07-23 Martin Liska <mli...@suse.cz> PR middle-end/86645 * dumpfile.c: And excluded values with TDF_ALL_VALUES. * dumpfile.h (enum dump_flag): Defince TDF_ALL_VALUES. --- gcc/dumpfile.c | 7 ++++--- gcc/dumpfile.h | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/gcc/dumpfile.c b/gcc/dumpfile.c index 6c9920c6bd2..176c9b846d7 100644 --- a/gcc/dumpfile.c +++ b/gcc/dumpfile.c @@ -150,9 +150,10 @@ static const kv_pair<dump_flags_t> dump_options[] = {"missed", MSG_MISSED_OPTIMIZATION}, {"note", MSG_NOTE}, {"optall", MSG_ALL}, - {"all", dump_flags_t (~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_GRAPH - | TDF_STMTADDR | TDF_RHS_ONLY | TDF_NOUID - | TDF_ENUMERATE_LOCALS | TDF_SCEV | TDF_GIMPLE))}, + {"all", dump_flags_t (TDF_ALL_VALUES + & ~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_GRAPH + | TDF_STMTADDR | TDF_RHS_ONLY | TDF_NOUID + | TDF_ENUMERATE_LOCALS | TDF_SCEV | TDF_GIMPLE))}, {NULL, TDF_NONE} }; diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h index ad14acdfc9a..1dbe3b85b7c 100644 --- a/gcc/dumpfile.h +++ b/gcc/dumpfile.h @@ -146,7 +146,10 @@ enum dump_flag | MSG_NOTE), /* Dumping for -fcompare-debug. */ - TDF_COMPARE_DEBUG = (1 << 25) + TDF_COMPARE_DEBUG = (1 << 25), + + /* All values. */ + TDF_ALL_VALUES = (1 << 26) - 1 }; /* Dump flags type. */