* pt.c (coerce_template_parms): Also complain about local enums.
From-SVN: r21363
This commit is contained in:
parent
e2bc7d00a6
commit
d1fec18074
@ -1,5 +1,7 @@
|
||||
1998-07-24 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* pt.c (coerce_template_parms): Also complain about local enums.
|
||||
|
||||
* cp-tree.h: Add prototype for set_identifier_local_value.
|
||||
* decl.c (set_identifier_local_value_with_scope): Make static,
|
||||
prototype.
|
||||
|
16
gcc/cp/NEWS
16
gcc/cp/NEWS
@ -1,5 +1,9 @@
|
||||
*** Changes since EGCS 1.0:
|
||||
|
||||
* Namespaces are fully supported. The library has not yet been converted
|
||||
to use namespace std, however, and the old std-faking code is still on by
|
||||
default. To turn it off, you can use -fhonor-std.
|
||||
|
||||
* Massive template improvements:
|
||||
+ member template classes are supported.
|
||||
+ template friends are supported.
|
||||
@ -9,8 +13,9 @@
|
||||
|
||||
* operator new now throws bad_alloc where appropriate.
|
||||
|
||||
* Exception handling is now thread safe, and supports nested
|
||||
exceptions and placement delete.
|
||||
* Exception handling is now thread safe, and supports nested exceptions and
|
||||
placement delete. Exception handling overhead on x86 is much lower with
|
||||
GNU as 2.9.
|
||||
|
||||
* protected virtual inheritance is now supported.
|
||||
|
||||
@ -20,6 +25,13 @@
|
||||
* For class D derived from B which has a member 'int i', &D::i is now of
|
||||
type 'int B::*' instead of 'int D::*'.
|
||||
|
||||
* An _experimental_ new ABI for g++ can be turned on with -fnew-abi. The
|
||||
current features of this are more efficient allocation of base classes
|
||||
(including the empty base optimization), and more compact mangling of C++
|
||||
symbol names (which can be turned on separately with -fsquangle). This
|
||||
ABI is subject to change without notice, so don't use it for anything
|
||||
that you don't want to rebuild with every release of the compiler.
|
||||
|
||||
*** Changes in EGCS 1.0:
|
||||
|
||||
* A public review copy of the December 1996 Draft of the ISO/ANSI C++
|
||||
|
@ -2659,11 +2659,11 @@ coerce_template_parms (parms, arglist, in_decl,
|
||||
if (! processing_template_decl)
|
||||
{
|
||||
tree t = target_type (val);
|
||||
if (TREE_CODE (t) != TYPENAME_TYPE
|
||||
&& IS_AGGR_TYPE (t)
|
||||
if (((IS_AGGR_TYPE (t) && TREE_CODE (t) != TYPENAME_TYPE)
|
||||
|| TREE_CODE (t) == ENUMERAL_TYPE)
|
||||
&& decl_function_context (TYPE_MAIN_DECL (t)))
|
||||
{
|
||||
cp_error ("type `%T' composed from a local class is not a valid template-argument",
|
||||
cp_error ("type `%T' composed from a local type is not a valid template-argument",
|
||||
val);
|
||||
return error_mark_node;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user