Andrew Pinski [Mon, 22 Jan 2007 02:03:02 +0000 (18:03 -0800)]
re PR objc/30479 (Precompiled headers don't seem to work with GNU ObjC)
2007-01-21 Andrew Pinski <pinskia@gmail.com>
PR objc/30479
* objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
of htab_hash_pointer.
(lookup_interface): Likewise.
(add_class): Likewise.
2007-01-21 Andrew Pinski <pinskia@gmail.com>
PR objc/30479
* objc.dg/pch: New directory.
* objc.dg/pch/pch.exp: New file.
* objc.dg/pch/interface-1.m: New test.
* objc.dg/pch/interface-1.hs: New include file.
* lib/objc.exp (objc_target_compile): Add
"-x objective-c-header" in front of the sources if this is
a precompiled header being compiled.
Eric Botcazou [Sun, 21 Jan 2007 22:34:57 +0000 (23:34 +0100)]
re PR rtl-optimization/29329 (internal consistency failure)
PR rtl-optimization/29329
* combine.c (replaced_rhs_insn): Rename to i2mod.
(replaced_rhs_value): Rename to i2mod_new_rhs.
(i2mod_old_rhs): New global variable.
(combine_instructions): Adjust for above change. Save a copy of
the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
note are substituted in the second instruction.
(distribute_notes) <REG_DEAD>: Adjust for above change. Do not
ditch the note if it pertains to the second eliminated register
and this register is mentioned in i2mod_old_rhs.
Revert:
2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
* combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
the insn to which the note was originally attached.
Mark Mitchell [Thu, 11 Jan 2007 05:40:35 +0000 (05:40 +0000)]
re PR c++/28999 (ICE on invalid use of typename)
PR c++/28999
* decl.c (make_typename_type): If the qualified name is not a
type, issue an error.
* parser.c (cp_parser_elaborated_type_specifier): Fix comment
formatting.
PR c++/28999
* g++.dg/template/typename11.C: New test.
backport: re PR middle-end/27736 (unwind-dw2-fde.c:833: fatal error: internal consistency failure)
gcc/
Backport:
2006-05-23 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/27736
* combine.c (replaced_rhs_value): New variable.
(combine_instructions): Set it.
(distribute_notes): When distributing a note in replaced_rhs_insn,
check whether the value was used in replaced_rhs_value.
2006-05-22 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/25514
* combine.c (replaced_rhs_insn): New variable.
(combine_instructions): Set replaced_rhs_insn when trying to replace
a SET_SRC with a REG_EQUAL note.
(distribute_notes): Use replaced_rhs_insn when determining the live
range of a REG_DEAD register.
gcc/testsuite/
2006-05-22 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/25514
* gcc.c-torture/compile/pr25514.c: New test.
backport: re PR c/25795 (Proccessing the attribute externally_visible too early)
2007-01-05 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-06-24 Jan Hubicka <jh@suse.cz>
PR c/25795
PR c++/27369
* craph.c (cgraph_varpool_nodes): Export.
(decide_is_variable_needed): Do not worry about "used" attribute.
* cgraph.h (cgraph_varpool_nodes): Declare.
* cgraphunit.c (decide_is_function_needed): Do not worry about "used"
attribute.
(process_function_and_variable_attributes): New function.
(cgraph_finalize_compilation_unit): Call it.
* c-decl.c (finish_decl): Do not worry about used attribute.
* c-common.c (handle_externally_visible_attribute): Only validate.
* gcc.dg/pr25795.c: New testcase.
* gcc.dg/pr25795-1.c: Likewise.
Jakub Jelinek [Fri, 5 Jan 2007 16:53:27 +0000 (17:53 +0100)]
re PR c++/30382 (ICE in build_enumerator, at cp/decl.c:10111)
PR c++/30382
Backported from mainline:
2006-06-29 Jason Merrill <jason@redhat.com>
* parser.c (cp_parser_enum_specifier): Return early if
type is error_mark_node.
Jakub Jelinek [Fri, 5 Jan 2007 15:55:45 +0000 (16:55 +0100)]
backport: re PR c/25993 (-std= produces incorrect preprocessor output for .S)
Backported from mainline
2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
PR c/25993
* c-opts.c (c_common_handle_option): Ignore the -std options
if the input language is assembly.
2006-10-13 Eric Christopher <echristo@apple.com>
* gcc.dg/pr25993.c: Skip for darwin.
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
PR c/25993
* gcc.dg/pr25993.c: New test.
Jakub Jelinek [Wed, 3 Jan 2007 08:13:50 +0000 (09:13 +0100)]
re PR c++/29535 (ICE in instantiate_class_template, at cp/pt.c:5728)
PR c++/29535
Backported from mainline
2006-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/28261
* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
function.
(cp_parser_constructor_declarator_p): Use it.
(cp_parser_check_type_definition): Return a value indicating
whether or not the definition is valid.
(cp_parser_enum_specifier): Skip invalid enum definitions.
PR c++/28261
* g++.dg/parse/enum3.C: New test.
PR c++/29535
* g++.dg/template/crash66.C: New test.
Joseph Myers [Sat, 16 Dec 2006 19:24:56 +0000 (19:24 +0000)]
re PR target/24036 ([e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143)
2006-12-16 Joseph Myers <joseph@codesourcery.com>
David Edelsohn <edelsohn@gnu.org>
PR target/24036
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
Use new macros to detect modes with holes; do not look at integer
units.
(subreg_offset_representable_p): Check for and disallow cases
where the modes use different numbers of bits from registers.
* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
constant for soft-float.
(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
containing doubles.
(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
in E500 double case.
* config/rs6000/rs6000.md (movtf): Allow soft-float.
(movtf_softfloat): New.
Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
From-SVN: r119967
James E Wilson [Tue, 12 Dec 2006 15:07:23 +0000 (16:07 +0100)]
re PR rtl-optimization/27761 (combine miscompiles)
PR rtl-optimization/27761
* combine.c (try_combine): Don't create a useless garbage SET
if PATTERN (i2) is a PARALLEL. If added_sets_1, save
PATTERN (i1) resp. SET from i1src to i1dest in i1pat
and use it to prevent accidental modification of i1src.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r119787
Benjamin Kosnik [Tue, 12 Dec 2006 13:13:21 +0000 (13:13 +0000)]
re PR libstdc++/26497 (libstdc++-v3: configure: test: -lt: unary operator expected)
2006-12-12 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/26497
* crossconfig.m4: Add GLIBCXX_CHECK_LINKER_FEATURES for Solaris.
* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Set
glibcxx_gnu_ld_version only when with GNU ld confirmed.
* configure: Regenerate.
Mark Mitchell [Sun, 10 Dec 2006 23:48:13 +0000 (23:48 +0000)]
re PR c++/29732 (ICE on invalid friend declaration)
PR c++/29732
* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
(explicit_class_specialization_p): Declare.
* pt.c (explicit_class_specialization_p): New function.
* parser.c (cp_parser_init_declarator): Check correct number of
template parameters for in-class function definitions.
(cp_parser_check_declarator_template_parameters): Stop looking for
template classes when we find an explicit specialization.
Paul Thomas [Sat, 9 Dec 2006 17:47:45 +0000 (17:47 +0000)]
Backport PRs 29820, 29821, 29912, 29916, 30003
2006-12-09 Paul Thomas <pault@gcc.gnu.org>
Backports from trunk
PR fortran/29821
* resolve.c (resolve_operator): Only return result of
gfc_simplify_expr if expression is constant.
PR fortran/29912
* trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL if the
lhs and rhs character lengths are not constant and equal for
character array valued functions.
PR fortran/29916
* resolve.c (resolve_symbol): Allow host-associated variables
in the specification expression of an array-valued function.
* expr.c (check_restricted): Accept host-associated dummy
array indices.
PR fortran/30003
* trans-array.c (gfc_trans_create_temp_array): Set the section
ends to zero.
(gfc_conv_section_startstride): Declare an expression for end,
set it from a the array reference and evaluate it for the info
structure. Zero the ends in the ss structure and set end, used
in the bounds check, from the info structure.
trans.h: Add and end array to the gfc_ss_info structure.
PR fortran/29820
* trans-array.c (gfc_get_derived_type): Once done, spread the
backend_decl to all identical derived types in all sibling
namespaces.
2006-12-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29821
* gfortran.dg/parameter_array_section_1.f90: New test.
PR fortran/29912
* gfortran.dg/char_result_12.f90: New test.
PR fortran/30003
* gfortran.dg/allocatable_function_1.f90: Increase the number
of expected calls of free to 10; the lhs section reference is
now evaluated so there is another call to bar. Change the
comment appropriately.
* gfortran.dg/array_section_1.f90: New test.
PR fortran/29820
* gfortran.dg/used_types_13.f90: New test.