mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-12 13:50:23 +08:00
re PR c++/18064 (gcc accepts different pointer types as covariant return types)
cp: PR c++/18064 * search.c (check_final_overrider): Deprecate gnu covariant extension. doc: PR c++/18064 * doc/extend.texi (Deprecated Features): Deprecate G++ covariant extension. testsuite: PR c++/18064 * g++.old-deja/g++.mike/p811.C: Avoid covariant extension. From-SVN: r89946
This commit is contained in:
parent
464f49d80d
commit
ae209f284c
@ -1,3 +1,9 @@
|
||||
2004-11-01 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/18064
|
||||
* doc/extend.texi (Deprecated Features): Deprecate G++ covariant
|
||||
extension.
|
||||
|
||||
2004-10-16 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
Fix PR tree-optimization/17672
|
||||
|
@ -1,3 +1,8 @@
|
||||
2004-11-01 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/18064
|
||||
* search.c (check_final_overrider): Deprecate gnu covariant extension.
|
||||
|
||||
2004-10-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||||
|
||||
Convert diagnostics to use quoting flag q 9/n
|
||||
|
@ -1830,6 +1830,12 @@ check_final_overrider (tree overrider, tree basefn)
|
||||
over_return = non_reference (TREE_TYPE (over_type));
|
||||
if (CLASS_TYPE_P (over_return))
|
||||
fail = 2;
|
||||
else
|
||||
{
|
||||
cp_warning_at ("deprecated covariant return type for %q#D",
|
||||
overrider);
|
||||
cp_warning_at (" overriding %q#D", basefn);
|
||||
}
|
||||
}
|
||||
else
|
||||
fail = 2;
|
||||
|
@ -9711,6 +9711,11 @@ parameters, as C++ demands. This feature has been removed, except where
|
||||
it is required for backwards compatibility @xref{Backwards Compatibility}.
|
||||
@end table
|
||||
|
||||
G++ allows a virtual function returning @samp{void *} to be overridden
|
||||
by one returning a different pointer type. This extension to the
|
||||
covariant return type rules is now deprecated and will be removed from a
|
||||
future version.
|
||||
|
||||
The named return value extension has been deprecated, and is now
|
||||
removed from G++.
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2004-11-01 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/18064
|
||||
* g++.old-deja/g++.mike/p811.C: Avoid covariant extension.
|
||||
|
||||
2004-10-31 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/15172
|
||||
|
@ -511,14 +511,14 @@ inline istream& WS(istream& str) { return ws(str); }
|
||||
class Y {
|
||||
public:
|
||||
Y() {}
|
||||
virtual const char *stringify() = 0;
|
||||
virtual const char *stringify() = 0;
|
||||
virtual char *stringify2() const = 0; // { dg-error "overriding" }
|
||||
};
|
||||
|
||||
class X: public Y {
|
||||
public:
|
||||
X(): Y() {}
|
||||
char *stringify(); // { dg-error "candidate" }
|
||||
const char *stringify(); // { dg-error "candidate" }
|
||||
const char *stringify2() const; // { dg-error "candidate|conflicting return type" }
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user