2004-12-14 Mark Mitchell <mark@codesourcery.com>
PR c++/18738
* decl.c (make_typename_type): Do not handle namespace-scoped
names here.
(tag_name): Handle typename_type.
(check_elaborated_type_specifier): Handle typenames.
* parser.c (cp_parser_diagnose_invalid_type_name): Do not call
make_typename_type for namespace-scoped names here.
(cp_parser_elaborated_type_specifier): Use
cp_parser_diagnose_invalid_type_name.
* g++.dg/template/typename8.C: New test.
* g++.dg/parse/friend2.C: Tweak error message.
re PR c/22061 (internal compiler error: in find_function_data, at function.c:317)
PR c/22061
* c-decl.c (push_parm_decl): Push and pop x_dont_save_pending_sizes_p
around the call to grokdeclarator. Call grokdeclarator with the
field set to 0.
(store_parm_decls): Always store the pending_sizes in cfun.
(c_expand_body_1): Call put_pending_sizes.
* c-objc-common.c (c_cannot_inline_tree_fn): Always check
pending_sizes.
re PR c++/22233 (ICE with wrong number of template parameters)
PR c++/22233
* pt.c (push_template_decl_real): Return error_mark_node if the
number of template parameters does not match previous definition.
* decl.c (start_function): Handle error_mark_node returned by
push_template_decl.
2004-11-25 Mark Mitchell <mark@codesourcery.com>
PR c++/18466
* decl.c (grokvardecl): Keep track of whether or not a there was
explicit qualification.
* name-lookup.c (set_decl_namespace): Complain about explicit
qualification of a name within its own namespace.
* g++.dg/parse/qualified3.C: New test.
* g++.old-deja/g++.other/friend7.C: Remove bogus qualification.
2004-11-29 Ben Elliston <bje@au.ibm.com>
* g++.old-deja/g++.other/decl5.C: Remove remaining XFAILs.
2004-11-25 Mark Mitchell <mark@codesourcery.com>
PR c++/18445
* class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
unknown_type as non matching.
* pt.c (build_non_dependent_expr): Do not build a
NON_DEPENDENT_EXPR for a VAR_DECL.
re PR rtl-optimization/17810 (internal compiler error: in verify_local_live_at_start for arm-rtems, arm-linux)
PR rtl-optimization/17810
Backport
2004-11-04 Richard Sandiford <rsandifo@redhat.com>
PR target/15342
* regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
as OP_INOUT if the instruction is predicated.
2005-02-22 Mark Mitchell <mark@codesourcery.com>
PR c++/20153
* decl2.c (build_anon_union_vars): Add type parameter.
(finish_anon_union): Pass it.
* g++.dg/template/error17.C: New test.
2005-07-28 Mark Mitchell <mark@codesourcery.com>
PR c++/22545
* call.c (add_builtin_candidate): Adjust for changes in
representation of pointer-to-member types.
Volker Reichelt [Wed, 31 Aug 2005 10:16:04 +0000 (10:16 +0000)]
re PR c++/23586 (Bad diagnostic for invalid namespace-name)
PR c++/23586
* parser.c (cp_parser_namespace_name): Move diagnostic for
invalid namespace-name to here from ...
* name-lookup.c (do_namespace_alias): ... here and ...
(do_using_directive): ... here. Remove dead code.
Paolo Carlini [Mon, 29 Aug 2005 22:08:50 +0000 (22:08 +0000)]
[multiple changes]
2005-08-29 Paolo Carlini <pcarlini@suse.de>
Port from HEAD/4_0-branch:
2004-07-28 Matt Austern <austern@apple.com>
* include/ext/hashtable.h: Use rebind so that allocator_type
has correct type for a container's allocator.
pa.c (function_value): Handle small aggregates on 32-bit targets.
* pa.c (function_value): Handle small aggregates on 32-bit targets.
(function_arg): Pass small aggregates in general registers on 32-bit
targets.
* som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
Gerald Pfeifer [Thu, 4 Aug 2005 10:10:19 +0000 (10:10 +0000)]
install.texi (Specific): Adjust link to openavr.org.
* doc/install.texi (Specific): Adjust link to openavr.org.
(Specific): Remove broken reference to GCC 2.8.1 for OS/2.
(Binaries): Adjust HP-UX Porting Center link.
(Binaries): Adjust Free Software Foundation ordering link.
(Binaries): Remove broken link to Sinix/Reliant Unix binaries.
re PR target/21723 (ICE while building libgfortran)
PR target/21723
* pa.md: Remove fcpy alternative from movhi and movqi patterns.
* pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
for complex modes when generating code for PA 1.0.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
(CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
* pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
re PR target/20621 (ICE: in change_address_1, at emit-rtl.c:1886)
PR target/20621
Backport from mainline:
2004-08-01 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.md (cprestore): Provide two alternatives, one for
an in-range offset and one for an out-of-range offset. Wrap the latter
in .set macro/.set nomacro if it's inside a .set nomacro block.
2004-08-01 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_gp_save_slot): Remove.
(mips_restore_gp): Declare.
* config/mips/mips.c (mips_add_offset): Add a scratch register
argument. Reimplement in rtl only, reusing MIPS16 logic from
mips_output_mi_thunk.
(mips_legitimize_address, mips_legitimize_const_move): Adjust calls
to mips_add_offset.
(mips_gp_save_slot): Delete.
(mips_restore_gp): New function.
(mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
* config/mips/mips.md (exception_receiver): Turn into a
define_insn_and_split. Use mips_restore_gp to do the split.
(call_internal, call_value_internal, call_value_multiple_internal): Use
mips_restore_gp to restore $gp.
Joseph Myers [Thu, 28 Jul 2005 23:01:29 +0000 (00:01 +0100)]
re PR c/17188 (struct Foo { } redefinition)
PR c/17188
PR c/21899
* c-decl.c (diagnose_mismatched_decls): Check for duplicate
declarations of enumerators.
(start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
for redefinition. Check for nested redefinition.
(finish_struct): Don't check for nested redefinition.
(start_enum): Check for nested redefinition.
Giovanni Bajo [Thu, 28 Jul 2005 10:22:22 +0000 (10:22 +0000)]
Backport:
2004-09-16 Mark Mitchell <mark@codesourcery.com>
PR c++/16002
* parser.c (cp_parser_simple_declaration): Commit to tentative
parses after seeing a decl-specifier.
(cp_parser_simple_declaration): Eliminate spurious message.
(cp_parser_init_declarator): Adjust error message.
2005-06-17 Geoffrey Keating <geoffk@apple.com>
PR c++/17413
* pt.c (type_unification_real): Apply template type deduction even
to procedure parameters that are not dependent on a template
parameter.
2004-12-21 Mark Mitchell <mark@codesourcery.com>
PR c++/18378
* call.c (convert_like_real): Do not permit the use of a copy
constructor to copy a packed field.
Backport:
2004-09-16 Mark Mitchell <mark@codesourcery.com>
PR c++/16002
* g++.dg/parse/error18.C: New test.
* g++.dg/parse/crash11.C: Adjust error markers.