diff options
author | Jason Merrill <jason@redhat.com> | 2000-12-15 11:23:26 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-12-15 11:23:26 -0500 |
commit | 8d42565b847d588e6c04e9c3cd5a3157859e2c6a (patch) | |
tree | 1e9ff9723405cf4774900bf257364fd0badea45d /gcc | |
parent | fab09a2494224143e42b78a8b4af1c318cc188cb (diff) | |
download | gcc-8d42565b847d588e6c04e9c3cd5a3157859e2c6a.zip gcc-8d42565b847d588e6c04e9c3cd5a3157859e2c6a.tar.gz gcc-8d42565b847d588e6c04e9c3cd5a3157859e2c6a.tar.bz2 |
* init.c (build_new_1): Don't strip quals from type.
From-SVN: r38291
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/cp/init.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/new5.C | 12 |
3 files changed, 14 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3143094..d92e24e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ 2000-12-15 Jason Merrill <jason@redhat.com> + * init.c (build_new_1): Don't strip quals from type. + * decl.c (pushdecl): Don't check for linkage on a non-decl. * call.c (build_op_delete_call): See through ARRAY_TYPEs. diff --git a/gcc/cp/init.c b/gcc/cp/init.c index a9360e5..7a2ce18 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2268,9 +2268,6 @@ build_new_1 (exp) code = has_array ? VEC_NEW_EXPR : NEW_EXPR; - if (CP_TYPE_QUALS (type)) - type = TYPE_MAIN_VARIANT (type); - /* If our base type is an array, then make sure we know how many elements it has. */ while (TREE_CODE (true_type) == ARRAY_TYPE) diff --git a/gcc/testsuite/g++.old-deja/g++.other/new5.C b/gcc/testsuite/g++.old-deja/g++.other/new5.C new file mode 100644 index 0000000..99f3b07 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/new5.C @@ -0,0 +1,12 @@ +// Test that const-correctness is observed when using new. + +struct A { + A() { } + int f () { return 1; } + int f () const { return 0; } +}; + +int main () +{ + return (new const A)->f (); +} |