P1236R1 - Signed integers are two's complement
commit1170ee757c4cc26211c4a5e19534e0542e8bf4e2
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Nov 2018 16:46:06 +0000 (14 16:46 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Nov 2018 16:46:06 +0000 (14 16:46 +0000)
tree5505cd75b39f643063ae805162831dbecc4def9c
parent0baeb9dd55d2ad2fb0eba261d00d18fff769c269
P1236R1 - Signed integers are two's complement
gcc/cp/
* constexpr.c (cxx_eval_check_shift_p): Disable the signed LSHIFT_EXPR
checks for c++2a.
gcc/c-family/
* c-warn.c (maybe_warn_shift_overflow): Don't warn for c++2a.
* c-ubsan.c (ubsan_instrument_shift): Make signed shifts
with in-range second operand well defined for -std=c++2a.
gcc/
* doc/invoke.texi (Wshift-overflow): Adjust documentation for
c++2a.
gcc/testsuite/
* g++.dg/cpp2a/constexpr-shift1.C: New test.
* g++.dg/warn/permissive-1.C (enum A, enum D): Don't expect
diagnostics here for c++2a.
* g++.dg/cpp0x/constexpr-shift1.C (fn3, i3, fn4, i4): Don't expect
diagnostics here for c++2a.
* g++.dg/cpp0x/constexpr-60049.C (f3, x3, y3): Likewise.
* g++.dg/ubsan/cxx11-shift-1.C (main): Add some further tests.
* g++.dg/ubsan/cxx11-shift-2.C (main): Likewise.
* g++.dg/ubsan/cxx2a-shift-1.C: New test.
* g++.dg/ubsan/cxx2a-shift-2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266153 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-ubsan.c
gcc/c-family/c-warn.c
gcc/cp/ChangeLog
gcc/cp/constexpr.c
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/constexpr-60049.C
gcc/testsuite/g++.dg/cpp0x/constexpr-shift1.C
gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C
gcc/testsuite/g++.dg/ubsan/cxx11-shift-2.C
gcc/testsuite/g++.dg/ubsan/cxx2a-shift-1.C [copied from gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C with 59% similarity]
gcc/testsuite/g++.dg/ubsan/cxx2a-shift-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/warn/permissive-1.C