diff options
-rw-r--r-- | gcc/cp/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/cp/tree.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/new4.C | 10 |
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 39cec74..f0b989c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -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. diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 9d77217..1d1f205 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -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 index 0000000..b9931b1 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/new4.C @@ -0,0 +1,10 @@ +// Build don't link: +// Origin: Mark Mitchell <mark@codesourcery.com> + +struct S { + S(); + + virtual int f() { + new S[+f()]; + } +}; |