OSDN Git Service

* tree.c (mapcar): Handle LVALUE_EXPR.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 May 1999 11:24:43 +0000 (11:24 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 May 1999 11:24:43 +0000 (11:24 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27101 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/tree.c
gcc/testsuite/g++.old-deja/g++.other/new4.C [new file with mode: 0644]

index 39cec74..f0b989c 100644 (file)
@@ -1,5 +1,7 @@
 1999-05-22  Mark Mitchell  <mark@codesourcery.com>
 
+       * tree.c (mapcar): Handle LVALUE_EXPR.
+
        * cp-tree.h (cplus_expand_constant): Declare.
        * cvt.c (convert_to_pointer): Expand PTRMEM_CSTs when they're
        converted from one pointer-to-object type to another.
index 9d77217..1d1f205 100644 (file)
@@ -1927,6 +1927,7 @@ mapcar (t, func)
     case NOP_EXPR:
     case COMPONENT_REF:
     case CLEANUP_POINT_EXPR:
+    case NON_LVALUE_EXPR:
       t = copy_node (t);
       TREE_TYPE (t) = mapcar (TREE_TYPE (t), func);
       TREE_OPERAND (t, 0) = mapcar (TREE_OPERAND (t, 0), func);
diff --git a/gcc/testsuite/g++.old-deja/g++.other/new4.C b/gcc/testsuite/g++.old-deja/g++.other/new4.C
new file mode 100644 (file)
index 0000000..b9931b1
--- /dev/null
@@ -0,0 +1,10 @@
+// Build don't link:
+// Origin: Mark Mitchell <mark@codesourcery.com>
+
+struct S {
+  S();
+
+  virtual int f() {
+    new S[+f()];
+  }
+};