aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/tree.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2019-05-20 19:10:57 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2019-05-20 19:10:57 +0000
commitbe9e458d8bed984fe13bd7a6daf76bb34ef3ed7f (patch)
tree79965ad0b9b9ae9d443f1d8e5c49d9dd87b6bfaa /gcc/cp/tree.c
parentf12ea6acdeb3b62ddb8324bc71a67c6a189f6c3c (diff)
downloadgcc-be9e458d8bed984fe13bd7a6daf76bb34ef3ed7f.zip
gcc-be9e458d8bed984fe13bd7a6daf76bb34ef3ed7f.tar.gz
gcc-be9e458d8bed984fe13bd7a6daf76bb34ef3ed7f.tar.bz2
CWG 2094 - volatile scalars are trivially copyable.
PR c++/85679 * tree.c (trivially_copyable_p): Don't check CP_TYPE_VOLATILE_P for scalar types. * g++.dg/ext/is_trivially_constructible1.C: Change the expected result for volatile int. * g++.dg/ext/is_trivially_copyable.C: New test. * testsuite/20_util/is_trivially_copyable/value.cc: Change the expected result for volatile int. From-SVN: r271435
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r--gcc/cp/tree.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 8d7f7a2..7813932 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -4098,7 +4098,8 @@ trivially_copyable_p (const_tree t)
&& !TYPE_HAS_COMPLEX_MOVE_ASSIGN (t)
&& TYPE_HAS_TRIVIAL_DESTRUCTOR (t));
else
- return !CP_TYPE_VOLATILE_P (t) && scalarish_type_p (t);
+ /* CWG 2094 makes volatile-qualified scalars trivially copyable again. */
+ return scalarish_type_p (t);
}
/* Returns 1 iff type T is a trivial type, as defined in [basic.types] and