aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@markmitchell.com>1998-11-08 13:26:38 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1998-11-08 13:26:38 +0000
commit5c0aa6d0a0ea257515d0afb35517c30dfaaea210 (patch)
tree5bafff4a92d051508bbe56705029a2d6e61bf736
parentec2288ffe0fe34e2940f59ed38ec1a5d53d09764 (diff)
downloadgcc-5c0aa6d0a0ea257515d0afb35517c30dfaaea210.zip
gcc-5c0aa6d0a0ea257515d0afb35517c30dfaaea210.tar.gz
gcc-5c0aa6d0a0ea257515d0afb35517c30dfaaea210.tar.bz2
* method.c (build_overload_value): Handle REFERENCE_TYPE.
From-SVN: r23573
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/method.c4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/ref1.C16
3 files changed, 24 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 484799c..5b0ad59 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+1998-11-08 Mark Mitchell <mark@markmitchell.com>
+
+ * method.c (build_overload_value): Handle REFERENCE_TYPE.
+
1998-11-08 Martin von Löwis <loewis@informatik.hu-berlin.de>
* decl.c (grokdeclarator): Allow namespace-scoped members if they
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index ee0185b..21dbbab 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -794,6 +794,10 @@ build_overload_value (type, value, in_template)
}
value = TREE_OPERAND (value, 0);
+
+ /* Fall through. */
+
+ case REFERENCE_TYPE:
if (TREE_CODE (value) == VAR_DECL)
{
my_friendly_assert (DECL_NAME (value) != 0, 245);
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ref1.C b/gcc/testsuite/g++.old-deja/g++.pt/ref1.C
new file mode 100644
index 0000000..8b117a5
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/ref1.C
@@ -0,0 +1,16 @@
+// Build don't link:
+
+int i;
+
+template <void (&FN)()>
+void g ()
+{
+ FN ();
+}
+
+void h ()
+{
+ i = 7;
+}
+
+template void g<h>();