From 06e3e32bcd55600300f4a393a77bb582ff68cdf9 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 9 Jul 2012 10:11:01 -0400 Subject: [PATCH] re PR c++/53882 (ICE in type_contains_placeholder_1, at tree.c:3015) PR c++/53882 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE. (type_hash_eq): Likewise. From-SVN: r189386 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/nullptr29.C | 4 ++++ gcc/tree.c | 2 ++ 4 files changed, 17 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/nullptr29.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b0ebab4002..3e8bfc236c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-07-09 Jason Merrill + + PR c++/53882 + * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE. + (type_hash_eq): Likewise. + 2012-07-09 Tom de Vries Richard Guenther diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fd233516f96..07187ebe3d2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-07-09 Jason Merrill + + PR c++/53882 + * g++.dg/cpp0x/nullptr29.C: New. + 2012-07-09 Tom de Vries Richard Guenther diff --git a/gcc/testsuite/g++.dg/cpp0x/nullptr29.C b/gcc/testsuite/g++.dg/cpp0x/nullptr29.C new file mode 100644 index 00000000000..a8e35a9b679 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/nullptr29.C @@ -0,0 +1,4 @@ +// PR c++/53882 +// { dg-options "-std=gnu++11 -O" } + +void f(decltype(nullptr) &__restrict np) { } diff --git a/gcc/tree.c b/gcc/tree.c index 9be0c9a7e31..f92f0704619 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -2980,6 +2980,7 @@ type_contains_placeholder_1 (const_tree type) case METHOD_TYPE: case FUNCTION_TYPE: case VECTOR_TYPE: + case NULLPTR_TYPE: return false; case INTEGER_TYPE: @@ -6188,6 +6189,7 @@ type_hash_eq (const void *va, const void *vb) case COMPLEX_TYPE: case POINTER_TYPE: case REFERENCE_TYPE: + case NULLPTR_TYPE: return 1; case VECTOR_TYPE: -- 2.30.2