mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 00:01:21 +08:00
re PR c++/60872 (Cannot memcpy array of restricted pointers)
PR c++/60872 * call.c (standard_conversion): Don't try to apply restrict to void. From-SVN: r209520
This commit is contained in:
parent
8a3a7e67a1
commit
c663bc6a4f
@ -1,3 +1,8 @@
|
||||
2014-04-18 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/60872
|
||||
* call.c (standard_conversion): Don't try to apply restrict to void.
|
||||
|
||||
2014-04-16 Marc Glisse <marc.glisse@inria.fr>
|
||||
|
||||
* decl.c (reshape_init_r): Handle a single element of vector type.
|
||||
|
@ -1196,9 +1196,10 @@ standard_conversion (tree to, tree from, tree expr, bool c_cast_p,
|
||||
&& TREE_CODE (TREE_TYPE (from)) != FUNCTION_TYPE)
|
||||
{
|
||||
tree nfrom = TREE_TYPE (from);
|
||||
/* Don't try to apply restrict to void. */
|
||||
int quals = cp_type_quals (nfrom) & ~TYPE_QUAL_RESTRICT;
|
||||
from = build_pointer_type
|
||||
(cp_build_qualified_type (void_type_node,
|
||||
cp_type_quals (nfrom)));
|
||||
(cp_build_qualified_type (void_type_node, quals));
|
||||
conv = build_conv (ck_ptr, from, conv);
|
||||
}
|
||||
else if (TYPE_PTRDATAMEM_P (from))
|
||||
|
8
gcc/testsuite/g++.dg/ext/restrict2.C
Normal file
8
gcc/testsuite/g++.dg/ext/restrict2.C
Normal file
@ -0,0 +1,8 @@
|
||||
// PR c++/60872
|
||||
// { dg-options "" }
|
||||
|
||||
typedef double *__restrict T;
|
||||
void f(T* p)
|
||||
{
|
||||
void *p2 = p;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user