[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

--- Comment #7 from Dominique d'Humieres  ---
> Fixed.

Still failing on darwin (r249501): see comment 4. Should I reopen this PR or
file a new one?

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jakub Jelinek  ---
Fixed.

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-21 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Wed Jun 21 22:17:49 2017
New Revision: 249480

URL: https://gcc.gnu.org/viewcvs?rev=249480=gcc=rev
Log:
Backported from mainline
2017-06-20  Jakub Jelinek  

PR sanitizer/81125
* ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
by removing enum keyword.
(ubsan_type_descriptor): Likewise.  Formatting fix.

2017-06-19  Jakub Jelinek  

PR sanitizer/81125
* ubsan.h (enum ubsan_encode_value_phase): New.
(ubsan_encode_value): Change second argument to
enum ubsan_encode_value_phase with default value of
UBSAN_ENCODE_VALUE_GENERIC.
* ubsan.c (ubsan_encode_value): Change second argument to
enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
create_tmp_var_raw instead of create_tmp_var and use a
TARGET_EXPR.
(ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
ubsan_encode_value callers.

PR sanitizer/8
* ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
use create_tmp_var_raw instead of create_tmp_var, mark it addressable
just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.

PR sanitizer/81125
* g++.dg/ubsan/pr81125.C: New test.

PR sanitizer/8
* g++.dg/ubsan/pr8.C: New test.

Added:
branches/gcc-7-branch/gcc/testsuite/g++.dg/ubsan/pr8.C
branches/gcc-7-branch/gcc/testsuite/g++.dg/ubsan/pr81125.C
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/ubsan.c
branches/gcc-7-branch/gcc/ubsan.h

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-21 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

--- Comment #4 from Dominique d'Humieres  ---
Still fails on darwin

/opt/gcc/_clean/gcc/testsuite/g++.dg/ubsan/pr81125.C: In constructor 'A::A(long
int)':
/opt/gcc/_clean/gcc/testsuite/g++.dg/ubsan/pr81125.C:19:14: internal compiler
error: in make_decl_rtl, at varasm.c:1311
   long b = a % c;
~~^~~

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-20 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

--- Comment #3 from Jakub Jelinek  ---
Author: jakub
Date: Tue Jun 20 07:10:14 2017
New Revision: 249397

URL: https://gcc.gnu.org/viewcvs?rev=249397=gcc=rev
Log:
PR sanitizer/81125
* ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
by removing enum keyword.
(ubsan_type_descriptor): Likewise.  Formatting fix.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ubsan.h

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

--- Comment #2 from Jakub Jelinek  ---
Author: jakub
Date: Mon Jun 19 15:28:42 2017
New Revision: 249376

URL: https://gcc.gnu.org/viewcvs?rev=249376=gcc=rev
Log:
PR sanitizer/81125
* ubsan.h (enum ubsan_encode_value_phase): New.
(ubsan_encode_value): Change second argument to
enum ubsan_encode_value_phase with default value of
UBSAN_ENCODE_VALUE_GENERIC.
* ubsan.c (ubsan_encode_value): Change second argument to
enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
create_tmp_var_raw instead of create_tmp_var and use a
TARGET_EXPR.
(ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
ubsan_encode_value callers.

* g++.dg/ubsan/pr81125.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/ubsan/pr81125.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/ubsan.c
trunk/gcc/ubsan.h

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-06-19
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
Created attachment 41582
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41582=edit
gcc8-pr81125.patch

Untested fix.

[Bug sanitizer/81125] [7/8 Regression] -fsanitize=undefined ICE

2017-06-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81125

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |7.2