Janus Weil [Thu, 22 Oct 2009 08:53:26 +0000 (10:53 +0200)]
re PR fortran/41781 ([OOP] bogus undefined label error with SELECT TYPE.)
2009-10-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/41781
* resolve.c (resolve_codes): Don't clear 'cs_base' for BLOCK constructs,
to make sure labels are treated correctly.
* symbol.c (gfc_get_st_label): Create labels in the right namespace.
For BLOCK constructs go into the parent namespace.
2009-10-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/41781
* gfortran.dg/goto_8.f90: New test case.
Sebastian Pop [Wed, 21 Oct 2009 23:05:39 +0000 (23:05 +0000)]
re PR tree-optimization/41497 (apparent integer wrong code bug)
PR tree-optimization/41497
* tree-scalar-evolution.c (analyze_evolution_in_loop): Return
chrec_dont_know if the evolution function returned by follow_ssa_edge
is constant in the analyzed loop and is not compatible with the
initial value before the loop.
* tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
Jack Howarth [Wed, 21 Oct 2009 15:07:59 +0000 (15:07 +0000)]
re PR c++/41313 (r150553 causes g++.dg/tree-prof/partition1.C compilation and execution test failures on *-apple-darwin*)
2009-10-21 Jack Howarth <howarth@bromo.med.uc.edu>
PR c++/41313
* gcc/config/darwin10.h: Use default_emit_unwind_label.
* gcc/config/darwin.c: Disable -freorder-blocks-and-partition
when darwin_emit_unwind_label is used.
Richard Guenther [Wed, 21 Oct 2009 11:40:17 +0000 (11:40 +0000)]
configure.ac: Adjust the ppl and cloog configure to work as documented.
2009-10-21 Richard Guenther <rguenther@suse.de>
* configure.ac: Adjust the ppl and cloog configure to work as
documented. Disable cloog if ppl was disabled. Omit the version
checks if they were disabled.
* configure: Re-generate.
Eric Botcazou [Wed, 21 Oct 2009 10:12:55 +0000 (10:12 +0000)]
decl.c (gnat_to_gnu_entity): Do not create a new TYPE_DECL when a type is padded if...
* gcc-interfaces/decl.c (gnat_to_gnu_entity): Do not create a new
TYPE_DECL when a type is padded if there is already one and reset
TYPE_STUB_DECL in this case.
Adam Nemet [Tue, 20 Oct 2009 22:12:56 +0000 (22:12 +0000)]
mips.c (mips_binary_cost): Add new argument speed.
* config/mips/mips.c (mips_binary_cost): Add new argument speed.
Use when calling rtx_costs.
(mips_rtx_costs): Fix formatting. Use argument speed rather than the
global optimize_size. Pass speed to mips_binary_cost.
Paolo Carlini [Tue, 20 Oct 2009 21:21:11 +0000 (21:21 +0000)]
re PR libstdc++/41763 (valarray_array.h seems to overuse __restrict__)
2009-10-20 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/41763
* include/bits/valarray_array.h (__valarray_default_construct,
__valarray_fill_construct, __valarray_copy_construct, __valarray_sum
__valarray_destroy_elements, __valarray_product): Do not qualify with
__restrict__ pointers accessing data also accessed by other pointers.
gcc/
* rtl.h (simplify_replace_fn_rtx): Declare.
(wrap_constant, unwrap_constant): Delete.
* cfgexpand.c (unwrap_constant, wrap_constant): Delete.
(expand_debug_expr): Don't call wrap_constant.
* combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
(auto_adjust_pair): Fold into...
(propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC.
Just return a new value.
(propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
otherwise use simplify_replace_rtx.
* cselib.c (wrap_constant): Reinstate old definition.
(cselib_expand_value_rtx_1): Don't wrap constants.
* gcse.c (try_replace_reg): Don't use copy_rtx in the call to
simplify_replace_rtx.
(bypass_block): Fix formatting in calls to simplify_replace_rtx.
* reload1.c (reload): Skip all uses for an insn before adjusting it.
Use simplify_replace_rtx.
* simplify-rtx.c (simplify_replace_fn_rtx): New function,
adapted from...
(simplify_replace_rtx): ...here. Turn into a wrapper for
simplify_replace_fn_rtx.
(simplify_unary_operation): Don't unwrap CONSTs.
* var-tracking.c (check_wrap_constant): Delete.
(vt_expand_loc_callback): Don't call it.
(vt_expand_loc): Likewise.
Richard Guenther [Tue, 20 Oct 2009 14:15:52 +0000 (14:15 +0000)]
ggc-page.c: Include cfgloop.h.
2009-10-20 Richard Guenther <rguenther@suse.de>
* ggc-page.c: Include cfgloop.h.
(struct max_alignment): Drop long double, add void *.
(extra_order_size_table): Add low non-power-of-two multiples
of MAX_ALIGNMENT. Drop small type-based entries, add
tree_type, cgraph_node and loop.
* alloc-pool.c (struct allocation_object_def): Drop long double
aligning element.
s390.md: Added agen condition to operand forwarding bypasses.
2009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com>
* config/s390/s390.md: Added agen condition to operand
forwarding bypasses.
Added bypass for early address generation use of int results.
Updated comments.
* charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
(_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
and char32_cset_desc.
(converter_for_type): Handle CPP_UTF8STRING.
(cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
* directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
(parse_include): Reject raw strings.
* include/cpplib.h (CPP_UTF8STRING): New token type.
* internal.h (struct cpp_reader): Add utf8_cset_desc field.
* lex.c (lex_raw_string): New function.
(lex_string): Handle u8 string literals, call lex_raw_string
for raw string literals.
(_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
sequences.
* macro.c (stringify_arg): Handle CPP_UTF8STRING.
* c-common.c (c_parse_error): Handle CPP_UTF8STRING.
* c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN
instead of C_LEX_RAW_STRINGS.
(lex_string): Handle CPP_UTF8STRING.
* c-parser.c (c_parser_postfix_expression): Likewise.
* c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
(C_LEX_STRING_NO_JOIN): ... this.
* parser.c (cp_lexer_print_token, cp_parser_is_string_literal,
cp_parser_string_literal, cp_parser_primary_expression): Likewise.
(cp_lexer_get_preprocessor_token): Use C_LEX_STRING_JOIN instead
of C_LEX_RAW_STRINGS.
* gcc.dg/raw-string-1.c: New test.
* gcc.dg/raw-string-2.c: New test.
* gcc.dg/raw-string-3.c: New test.
* gcc.dg/raw-string-4.c: New test.
* gcc.dg/raw-string-5.c: New test.
* gcc.dg/raw-string-6.c: New test.
* gcc.dg/raw-string-7.c: New test.
* gcc.dg/utf8-1.c: New test.
* gcc.dg/utf8-2.c: New test.
* gcc.dg/utf-badconcat2.c: New test.
* gcc.dg/utf-dflt2.c: New test.
* gcc.dg/cpp/include6.c: New test.
* g++.dg/ext/raw-string-1.C: New test.
* g++.dg/ext/raw-string-2.C: New test.
* g++.dg/ext/raw-string-3.C: New test.
* g++.dg/ext/raw-string-4.C: New test.
* g++.dg/ext/raw-string-5.C: New test.
* g++.dg/ext/raw-string-6.C: New test.
* g++.dg/ext/raw-string-7.C: New test.
* g++.dg/ext/utf8-1.C: New test.
* g++.dg/ext/utf8-2.C: New test.
* g++.dg/ext/utf-badconcat2.C: New test.
* g++.dg/ext/utf-dflt2.C: New test.
* gimple-low.c (struct lower_data): Add cannot_fallthru field.
(lower_stmt) <GIMPLE_BIND>: Add comment.
<GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
and return.
<GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
Otherwise lower it and set cannot_fallthru to true.
<GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
<GIMPLE_CATCH, GIMPLE_EH_FILTER>; Set cannot_fallthru to false.
<GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
to true for a noreturn call. Do not remove statements.
<GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
Set cannot_fallthru to false on function exit.
(gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
<GIMPLE_ASSIGN>: Remove.
Andy Hutchinson [Sat, 17 Oct 2009 22:42:17 +0000 (22:42 +0000)]
re PR middle-end/41738 (optabs expands rotate using wrong mode)
2009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
PR middle-end/41738
* optabs.c (expand_binop): Make mode of shift count expression mode of shift count not target.
Remove indent nit.
Eric Botcazou [Sat, 17 Oct 2009 22:21:24 +0000 (22:21 +0000)]
tree-nested.c (convert_nonlocal_reference_stmt): New case.
* tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
case. Force using values to replace references within the statement.
(convert_local_reference_stmt): Likewise.
Andy Hutchinson [Sat, 17 Oct 2009 22:15:45 +0000 (22:15 +0000)]
avr.md (*movqi): Add zero as equally preferable constraint as general register.
2009-10-17 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr.md (*movqi): Add zero as equally preferable constraint as general register.
(*movhi): Ditto.
Janus Weil [Sat, 17 Oct 2009 18:09:25 +0000 (20:09 +0200)]
re PR fortran/41608 ([OOP] ICE with CLASS and invalid code)
2009-10-17 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/41608
* decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type
and empty type errors.
* parse.c (gfc_build_block_ns): Only set recursive if parent ns
has a proc_name.
PR fortran/41629
PR fortran/41618
PR fortran/41587
* gfortran.h : Add class_ok bitfield to symbol_attr.
* decl.c (build_sym): Set attr.class_ok if dummy, pointer or
allocatable.
(build_struct): Use gfc_try 't' to carry errors past the call
to encapsulate_class_symbol.
(attr_decl1): For a CLASS object, apply the new attribute to
the data component.
* match.c (gfc_match_select_type): Set attr.class_ok for an
assigned selector.
* resolve.c (resolve_fl_variable_derived): Check a CLASS object
is dummy, pointer or allocatable by testing the class_ok and
the use_assoc attribute.
2009-10-17 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/41629
* gfortran.dg/class_6.f90: New test.
PR fortran/41608
PR fortran/41587
* gfortran.dg/class_7.f90: New test.
PR fortran/41618
* gfortran.dg/class_8.f90: New test.
Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
From-SVN: r152955
Eric Botcazou [Sat, 17 Oct 2009 11:17:27 +0000 (11:17 +0000)]
utils.c (convert): When converting to a padded type with an inner type of self-referential size...
* gcc-interface/utils.c (convert): When converting to a padded type
with an inner type of self-referential size, pad the expression before
doing the unchecked conversion.
Anatoly Sokolov [Sat, 17 Oct 2009 10:46:18 +0000 (14:46 +0400)]
targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro if not defined.
* targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
if not defined. Change type of second argument to const_rtx.
(default_function_value): Call gcc_unreachable if FUNCTION_VALUE
macro not defined.
* targhooks.h (default_libcall_value): Update prototype.
* target.h (struct gcc_target): Change type of second argument of
libcall_value to const_rtx.
* config/arm/arm.c (arm_libcall_value): Change type of second argument
to const_rtx.
(arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
* doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation.
Ralf Wildenhues [Sat, 17 Oct 2009 07:34:47 +0000 (07:34 +0000)]
Fix libgomp without --enable-languages=fortran.
libgomp/:
PR libgomp/41418
* configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
or a hyphen (happens with fortran language disabled).
* configure: Regenerate.
Jason Merrill [Sat, 17 Oct 2009 06:11:08 +0000 (02:11 -0400)]
re PR c++/38798 ([c++0x] Trouble with struct/class/enum keyword in late return types)
PR c++/38798
* parser.c (CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS): New.
(cp_parser_type_specifier): Don't try to parse a class-specifier
or enum-specifier in that case.
(cp_parser_trailing_type_id): New.
(cp_parser_late_return_type_opt): Call it.
(cp_parser_type_id_1): Add is_trailing_return parm.
(cp_parser_type_specifier_seq): Likewise.
* lto-symtab.c (merge_incomplete_and_complete_type): Remove.
(maybe_merge_incomplete_and_complete_type): Likewise.
(lto_symtab_merge): Do not call them. Do not warn for
complete vs. incomplete compatible types.
(lto_symtab_merge_decls_2): Simplify.
* gimple.c (gimple_force_type_merge): Remove.
(gimple_types_compatible_p): Make it static.
* gimple.h (gimple_force_type_merge): Remove.
(gimple_types_compatible_p): Likewise.
2009-10-16 Rafael Avila de Espindola <espindola@google.com>
* lto-plugin.c (message): New variable.
(check): New function.
(parse_table_entry, translate, write_resolution,add_output_files,
exec_lto_wrapper,claim_file_handler, onload): Use check instead of
assert.
(cleanup_handler): Use check instead of assert. Remove the arguments
file if it exists.