This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++0x] implementing forward declarations for enums


> This looks good to me, it just needs a ChangeLog entry.
Great!

I've just written the changelog. This is by far my largest patch so it
is also my largest changelog, but I hope it is ok.

Best regards.
Rodrigo

--
gcc

2010-10-25  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>

	Implement opaque-enum-specifiesr for C++0x
	* tree.h (ENUM_IS_OPAQUE): New.
	* dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.

gcc/cp

2010-10-25  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>

	Implement opaque-enum-specifiers for C++0x
	* cp-tree.h (SET_OPAQUE_ENUM_P): New.
	(OPAQUE_ENUM_P): New.
	(ENUM_FIXED_UNDERLYING_TYPE_P): New.
	(start_enum): Update prototype.
	(finish_enum_value_list): New prototype.
	* parser.c (cp_parser_elaborated_type_specifier): Issue a pedwarn if
	"enum class" is used in an elaborated-type-specifier.
	(cp_parser_enum_specifier): Rewrite to parse opaque-enum-specifiers.
	* decl.c (copy_type_enum): New.
	(finish_enum_value_list): New, with code from finish_enum.
	(finish_enum): A lot of code removed. Added a gcc_assert.
	(start_enum): Add parameters enumtype and is_new.
	Rewrite to work with opaque-enum-specifiers.
	* pt.c (maybe_process_partial_specialization): Allow for template
	specialization of enumerations, with a pedwarn.
	(lookup_template_class): Update call to start_enum. Call to
	SET_OPAQUE_ENUM_P.
	(tsubst_enum): Call to begin_scope, finish_scope and
	finish_enum_value_list.
	
gcc/testsuite

2010-10-25  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
	
	Implement opaque-enum-specifiers for C++0x
	* g++.dg/cpp0x/forw_enum1.C: New.
	* g++.dg/cpp0x/forw_enum2.C: New.
	* g++.dg/cpp0x/forw_enum3.C: New.
	* g++.dg/cpp0x/forw_enum4.C: New.
	* g++.dg/cpp0x/forw_enum5.C: New.
	* g++.dg/cpp0x/forw_enum6.C: New.
	* g++.dg/cpp0x/forw_enum7.C: New.
	* g++.dg/cpp0x/forw_enum8.C: New.
	* g++.dg/cpp0x/forw_enum9.C: New.
	* g++.dg/parse/enum3.C: Add new errors.
	* g++.dg/cpp0x/scoped_enum.C: Avoid unwanted warning.
	* g++.dg/cpp0x/auto9.C: Add new error.
	* g++.dg/template/crash79.C: Add new errors.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]