aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-12-19 17:08:29 -0500
committerJason Merrill <jason@gcc.gnu.org>2011-12-19 17:08:29 -0500
commit4f7002c581dfde7cb9506dc685e8b7b48f41bf00 (patch)
tree626be8616ecdc07e879db94da25e53fb90808647
parent7a613929211d2cbf23e3bb84449fc6e8784d282d (diff)
downloadgcc-4f7002c581dfde7cb9506dc685e8b7b48f41bf00.zip
gcc-4f7002c581dfde7cb9506dc685e8b7b48f41bf00.tar.gz
gcc-4f7002c581dfde7cb9506dc685e8b7b48f41bf00.tar.bz2
re PR c++/51530 ([C++0x] internal compiler error: in unify, at cp/pt.c:16854)
PR c++/51530 * pt.c (unify): Handle NULLPTR_TYPE. From-SVN: r182505
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/pt.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/nullptr26.C13
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 5623bcf..3da96fe 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2011-12-19 Jason Merrill <jason@redhat.com>
+ PR c++/51530
+ * pt.c (unify): Handle NULLPTR_TYPE.
+
PR c++/51526
* semantics.c (build_data_member_initialization): Handle
delegating constructor.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 66d4c3f..769b610 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -16614,6 +16614,7 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict,
case BOOLEAN_TYPE:
case ENUMERAL_TYPE:
case VOID_TYPE:
+ case NULLPTR_TYPE:
if (TREE_CODE (arg) != TREE_CODE (parm))
return unify_type_mismatch (explain_p, parm, arg);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9efe801..7b349c9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/51530
+ * g++.dg/cpp0x/nullptr26.C: New.
+
2011-12-19 Richard Sandiford <rdsandiford@googlemail.com>
* gcc.target/mips/mult-1.c: Require -O2.
diff --git a/gcc/testsuite/g++.dg/cpp0x/nullptr26.C b/gcc/testsuite/g++.dg/cpp0x/nullptr26.C
new file mode 100644
index 0000000..b7421b8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/nullptr26.C
@@ -0,0 +1,13 @@
+// PR c++/51530
+// { dg-options -std=c++0x }
+
+template <class T, class U>
+void f(T, U);
+
+template <class T>
+void f(T, decltype(nullptr));
+
+int main()
+{
+ f(1, nullptr);
+}