• mmitchel's avatar
    PR c++/11946 · b7d1e8ea
    mmitchel authored
    	* convert.c (convert_to_integer): Use CONVERT_EXPR (instead of
    	NOP_EXPR) when necessary.
    	* c-common.c (c_common_signed_or_unsigned_type): Correctly handle
    	types with precisions other than those given by native machine
    	modes.
    
    	PR c++/11684
    	* cp-tree.h (grok_op_properties): Change prototype.
    	* decl.c (grok_op_properties): Add complain parameter.
    	(grokfndecl): Pass it.
    	* pt.c (tsubst_decl): Adjust accordingly.
    
    	PR c++/10926
    	* decl.c (start_method): Return immediately if push_template_decl
    	does not like the declaration.
    	* pt.c (push_template_decl_real): Disallow member template
    	destructors.
    
    	PR c++/11036.C
    	* cp-tree.h (add_binding): Add prototype.
    	* class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate.
    	(maybe_warn_about_overly_private_class): Use
    	CLASSTYPE_DESTRUCTORS.
    	(pushclass): Adjust call to set_identifier_type_value.
    	* decl.c (add_binding): Give it external linkage.
    	(push_local_binding): Adjust call to add_binding.
    	(push_class_binding): Likewise.
    	(set_identifier_type_value_with_scope): Change prototype.  Use
    	add_binding for global bindings.
    	(set_identifier_type_value): Adjust accordingly.
    	(pushtag): Likewise.
    	(pushdecl): Use set_identifier_type_value, not
    	set_identifier_type_value_with_scope.
    	(pushdecl_namespace_level): Adjust calls to
    	SET_IDENTIFIER_TYPE_VALUE to pass a DECL.
    	(pushdecl_class_level): Likewise.
    	(lookup_tag): Use select_decl.
    	(select_decl): Improve comment.
    	(record_builtin_type): Do not call pushdecl.
    	(cxx_init_decl_processing): Do not call xref_tag for bad_alloc.
    	(cp_finish_decl): Adjust call to set_identifier_type_value.
    	(check_elaborated_type_specifier): Improve checks for invalid uses
    	of typedefs.
    	(xref_tag): Adjust call to check_elaborated_type_specifier.
    	* decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR.
    	* name-lookup.c (set_namespace_binding): Use add_binding.
    	* parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL,
    	rather than an IDENTIFIER_NODE, to represent built-in types, if
    	requested by the caller.
    	(cp_parser_postfix_expression): Adjust call.
    	(cp_parser_type_specifier): Likewise.
    	(cp_parser_elaborated_type_specifier): Adjust call to
    	check_elaborated_type_specifier.
    	* typeck2.c (build_functional_cast): Do not perform name lookups.
    
    	PR c++/10717
    	* decl.c (expand_static_init): Remove unncessary code.
    
    	PR c++/10926
    	* g++.dg/template/dtor2.C: New test.
    
    	PR c++/11684
    	* g++.dg/template/operator1.C: New test.
    	* g++.dg/parse/operator4.C: New test.
    
    	PR c++/11946.C
    	* g++.dg/expr/enum1.C: New test.
    	* gcc.dg/c99-bool-1.c: Remove bogus warning.
    
    	PR c++/11036.C
    	* g++.dg/parse/elab2.C: New test.
    	* g++.dg/parse/typedef4.C: Change error message.
    	* g++.old-deja/g++.robertl/eb133.C: Remove bogus error markers.
    	* g++.old-deja/g++.robertl/eb133a.C: Remove bogus error markers.
    	* g++.old-deja/g++.robertl/eb133b.C: Remove bogus error markers.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70593 138bc75d-0d04-0410-961f-82ee72b054a4
    b7d1e8ea
ChangeLog 197 KB