OSDN Git Service

* method.c (build_overload_value): Handle REFERENCE_TYPE.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 8 Nov 1998 13:26:38 +0000 (13:26 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 8 Nov 1998 13:26:38 +0000 (13:26 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23573 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/method.c
gcc/testsuite/g++.old-deja/g++.pt/ref1.C [new file with mode: 0644]

index 484799c..5b0ad59 100644 (file)
@@ -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
index ee0185b..21dbbab 100644 (file)
@@ -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 (file)
index 0000000..8b117a5
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+
+int i;
+
+template <void (&FN)()>
+void g ()
+{
+  FN ();
+}
+
+void h ()
+{
+  i = 7;
+}
+
+template void g<h>();