From: Nathan Sidwell Date: Mon, 12 Feb 2001 14:29:13 +0000 (+0000) Subject: extend.texi (Deprecated): Deprecate new initializer lists. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=82c18d5c67b2d121e8ef05c909f3e442c2ea742e;p=gcc.git extend.texi (Deprecated): Deprecate new initializer lists. .: * extend.texi (Deprecated): Deprecate new initializer lists. cp: * errfn.c (cp_deprecated): Tweak diagnostic text. * parse.y (new_initializer): Deprecate initializer lists extension. testsuite: * g++.old-deja/g++.robertl/eb63.C: Remove new initializer list case. * g++.old-deja/g++.ext/arrnew.C: Deprecate. From-SVN: r39603 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5838071d35d..51837d02b5e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-02-12 Nathan Sidwell + + * extend.texi (Deprecated): Deprecate new initializer lists. + 2001-02-12 Nathan Sidwell * mkdeps.c (deps_add_default_target): Robustify. Add diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6e1cb900c63..3f7b3922d49 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2001-02-12 Nathan Sidwell + + * errfn.c (cp_deprecated): Tweak diagnostic text. + * parse.y (new_initializer): Deprecate initializer lists + extension. + 2001-02-12 Mark Mitchell Remove old ABI support. diff --git a/gcc/cp/errfn.c b/gcc/cp/errfn.c index 802f5676ee7..351dba95888 100644 --- a/gcc/cp/errfn.c +++ b/gcc/cp/errfn.c @@ -265,8 +265,7 @@ cp_deprecated (msg) extern int warn_deprecated; if (!warn_deprecated) return; - cp_warning ("%s is deprecated.", msg); - cp_warning ("Please see the documentation for details."); + cp_warning ("%s is deprecated, please see the documentation for details", msg); } void diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y index e84efb53a73..a9963ee7691 100644 --- a/gcc/cp/parse.y +++ b/gcc/cp/parse.y @@ -1290,11 +1290,14 @@ new_initializer: } /* GNU extension so people can use initializer lists. Note that this alters the meaning of `new int = 1', which was previously - syntactically valid but semantically invalid. */ + syntactically valid but semantically invalid. + This feature is now deprecated and will be removed in a future + release. */ | '=' init { if (pedantic) pedwarn ("ISO C++ forbids initialization of new expression with `='"); + cp_deprecated ("new initializer lists extension"); if (TREE_CODE ($2) != TREE_LIST && TREE_CODE ($2) != CONSTRUCTOR) $$ = build_tree_list (NULL_TREE, $2); diff --git a/gcc/extend.texi b/gcc/extend.texi index c1d523378ee..c2ce6a39f4c 100644 --- a/gcc/extend.texi +++ b/gcc/extend.texi @@ -4390,6 +4390,9 @@ it is required for backwards compatibility @xref{Backwards Compatibility}. The named return value extension has been deprecated, and will be removed from g++ at some point. +The use of initializer lists with new expressions has been deprecated, +and will be removed from g++ at some point. + @node Backwards Compatibility @section Backwards Compatibility @cindex Backwards Compatibility diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c8832787c32..de55bb37764 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2001-02-12 Nathan Sidwell + + * g++.old-deja/g++.robertl/eb63.C: Remove new initializer list + case. + * g++.old-deja/g++.ext/arrnew.C: Deprecate. + 2001-02-12 Jakub Jelinek * gcc.c-torture/compile/20010209-1.c: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C b/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C index ef051d265a0..0ecb8777e26 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C @@ -2,4 +2,6 @@ // Build don't link: // Special g++ Options: - int *f(){ return new int[1] = { 1 }; } +int *f(){ + return new int[1] = { 1 }; // WARNING - deprecated +} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C index 671fe813200..f786e707923 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C @@ -11,6 +11,6 @@ public: main() { A* a; - a = new A[2] = { A(1,false), A(1,false) } ; + a = new A[2](1,false); }