aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1998-04-17 01:57:57 +0000
committerJason Merrill <jason@gcc.gnu.org>1998-04-16 21:57:57 -0400
commit2fcdec5719041a38cb6e9e4dd91115388896dd5b (patch)
tree4a835c6f78249046578299165ee5288e5c1f4cdd
parent2b6815eae26c4fb5853e2216d08bc725fe69fc1b (diff)
downloadgcc-2fcdec5719041a38cb6e9e4dd91115388896dd5b.zip
gcc-2fcdec5719041a38cb6e9e4dd91115388896dd5b.tar.gz
gcc-2fcdec5719041a38cb6e9e4dd91115388896dd5b.tar.bz2
* decl2.c (build_expr_from_tree): Just return a PMF.
From-SVN: r19256
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl2.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 2aa936c..2ff3c13 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+Fri Apr 17 01:57:12 1998 Jason Merrill <jason@yorick.cygnus.com>
+
+ * decl2.c (build_expr_from_tree): Just return a PMF.
+
Fri Apr 17 00:45:12 1998 Mark Mitchell <mmitchell@usa.net>
* typeck2.c (process_init_constructor): Don't strip cv-qualifiers
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 42cbba9..5ab2f98 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -3540,8 +3540,14 @@ build_expr_from_tree (t)
case CONSTRUCTOR:
{
- tree r = build_nt (CONSTRUCTOR, NULL_TREE,
- build_expr_from_tree (CONSTRUCTOR_ELTS (t)));
+ tree r;
+
+ /* digest_init will do the wrong thing if we let it. */
+ if (TREE_TYPE (t) && TYPE_PTRMEMFUNC_P (TREE_TYPE (t)))
+ return t;
+
+ r = build_nt (CONSTRUCTOR, NULL_TREE,
+ build_expr_from_tree (CONSTRUCTOR_ELTS (t)));
if (TREE_TYPE (t))
return digest_init (TREE_TYPE (t), r, 0);