Jakub Jelinek [Tue, 11 May 2010 06:50:24 +0000 (08:50 +0200)]
gcc.c (execute): For -### don't quote arguments that contain just alphanumerics and _/-.
* gcc.c (execute): For -### don't quote arguments that
contain just alphanumerics and _/-. characters.
* doc/invoke.texi: Document that change for -###.
Jakub Jelinek [Tue, 11 May 2010 06:48:15 +0000 (08:48 +0200)]
re PR debug/44023 (-fcompare-debug failure (length) for alphaev67 target (bootstrap failure))
PR debug/44023
* df-problems.c (struct dead_debug): Add to_rescan field.
(dead_debug_init): Clear to_rescan field.
(dead_debug_finish): Rescan all debug insns in to_rescan
bitmap and free the bitmap.
(dead_debug_insert_before): Instead of rescanning debug insns
immediately queue their rescanning until dead_debug_finish.
(df_note_bb_compute): After dead_debug_add do continue instead
of break.
Eric Botcazou [Mon, 10 May 2010 21:52:45 +0000 (21:52 +0000)]
exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables built for interfaces.
* exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables
built for interfaces.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use
imported_p instead of Is_Imported when considering constants.
Do not promote alignment of exported objects.
<E_Record_Subtype>: Strip all suffixes for dispatch table entities.
* passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries): Allocate
encoders.
* lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
* lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
(lto_streamer_cache_create): Init alloc pool.
(lto_streamer_cache_delete): Free alloc pool.
* lto-streamer.h: Include alloc pool.
(lto_streamer_cache_d): Use alloc pool.
* lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
Jan Hubicka [Mon, 10 May 2010 16:00:40 +0000 (18:00 +0200)]
Makefile.in (cgraphbuild.o): Add dependency on except.h.
* Makefile.in (cgraphbuild.o): Add dependency on except.h.
* cgraphbuild.c: Include except.h
(record_type_list, record_eh_tables): New function.
(build_cgraph_edges, rebuild_cgraph_edges): Use it.
Jan Hubicka [Mon, 10 May 2010 15:53:04 +0000 (17:53 +0200)]
crtstuff.c (force_to_data, [...]): Attribute as used rather than unused.
* crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
__frame_dummy_init_array_entry, force_to_data): Attribute as used
rather than unused.
Michael Matz [Mon, 10 May 2010 14:31:37 +0000 (14:31 +0000)]
tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
* tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
(can_reassociate_p): Use FLOAT_TYPE_P.
* tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
(vect_force_simple_reduction): ... this.
* tree-parloops.c (gather_scalar_reductions): Use
vect_force_simple_reduction.
* tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
vect_is_simple_reduction, add modify argument, if true rewrite
"a-b" into "a+(-b)".
(vect_is_simple_reduction, vect_force_simple_reduction): New
functions.
(vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
testsuite/
* gcc.dg/vect/fast-math-vect-reduc-8.c: New test.
Rainer Orth [Mon, 10 May 2010 13:45:23 +0000 (13:45 +0000)]
lto.exp (lto_prune_vis_warns): Renamed to lto_prune_warns.
* lib/lto.exp (lto_prune_vis_warns): Renamed to lto_prune_warns.
Log text on entry and exit.
Prune Sun ld warnings for common symbols with differing sizes.
(lto-link-and-maybe-run): Change caller.
Rainer Orth [Mon, 10 May 2010 13:01:58 +0000 (13:01 +0000)]
sol2.c (solaris_assemble_visibility): Declare decl, vis unused.
* config/sol2.c (solaris_assemble_visibility): Declare decl, vis
unused.
Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
* configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
support in Sun ld.
* configure: Regenerate.
Janus Weil [Mon, 10 May 2010 12:54:25 +0000 (14:54 +0200)]
re PR fortran/44044 ([OOP] SELECT TYPE with class-valued function)
2010-05-10 Janus Weil <janus@gcc.gnu.org>
PR fortran/44044
* match.c (gfc_match_select_type): Move error message to
resolve_select_type.
* resolve.c (resolve_select_type): Error message moved here from
gfc_match_select_type. Correctly set type of temporary.
* c-common.c (struct c_common_attributes): Add fnspec attribute.
(handle_fnspec_attribute): New function.
* gimple.h (gimple_call_return_flags): Declare.
(gimple_call_arg_flags): Likewise.
* gimple.c (gimple_call_arg_flags): New function.
(gimple_call_return_flags): Likewise.
* tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
New argument flags.
(ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
return value flags.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
* tree-ssa-structalias.c (make_constraint_from_heapvar): Split
main work to ...
(make_heapvar_for): ... this new function.
(handle_rhs_call): Handle fnspec attribute argument specifiers.
(handle_lhs_call): Likewise.
(find_func_aliases): Adjust.
fortran/
* trans-decl.c (gfc_build_library_function_decl): Split out
worker to ...
(build_library_function_decl_1): ... this new function.
Set a fnspec attribute if a specification was provided.
(gfc_build_library_function_decl_with_spec): New function.
(gfc_build_intrinsic_function_decls): Annotate internal_pack
and internal_unpack.
Joseph Myers [Sun, 9 May 2010 20:39:39 +0000 (21:39 +0100)]
re PR c/10676 (Using unnamed fields in initializers)
PR c/10676
* c-typeck.c (lookup_field): Take a type directly. Update
recursive calls.
(build_component_ref): Update call to lookup_field.
(set_init_label): Use lookup_field to find initialized field.
Handle returned list of fields like a sequence of designators.
Joseph Myers [Sun, 9 May 2010 16:19:28 +0000 (17:19 +0100)]
re PR c/4784 (Anonymous structs issues)
PR c/4784
* c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
structures and unions recursively.
(detect_field_duplicates): Move duplicate detection with a hash to
detect_field_duplicates_hash. Always use a hash if anonymous
structures or unions are present.
* doc/extend.texi (Unnamed Fields): Document that duplicate fields
give errors.
Eric Botcazou [Sat, 8 May 2010 11:50:18 +0000 (11:50 +0000)]
exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables.
* exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Make imported
constants really constant.
<E_Record_Subtype>: Strip the suffix for dispatch table entities.
Steven Bosscher [Fri, 7 May 2010 21:37:43 +0000 (21:37 +0000)]
configure.ac (--enable-lto): Add x86_64-apple-darwin* as a platform that supports LTO.
ChangeLog:
* configure.ac (--enable-lto): Add x86_64-apple-darwin* as
a platform that supports LTO.
* configure: Regenerate.
gcc/ChangeLog:
* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
lto-macho as lto_binary_reader.
* target.h (struct gcc_target): New hooks lto_start and lto_end.
* target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
* cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
in lto_start and lto_end calls.
(is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
magic numbers.
(scan_prog_file): Update is_elf_or_coff call.
* doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
* collect2.c (main): Fix enum comparison.
* config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
Add prototypes.
* darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
* darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
and TARGET_ASM_LTO_END.
* darwin.c: Include obstack.h and lto-streamer.h.
(lto_section_names_offset, lto_section_names_obstack,
lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
global variables.
(LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
(darwin_asm_lto_start): New function. Redirect output to asm_out_file
to a temporary file.
(darwin_asm_lto_end): New function. Restore asm_out_file.
(darwin_asm_named_section): For LTO sections, replace the name with
the offset of the section name in a string table, and build this
table.
(darwin_file_start): Initialize global vars for LTO support.
(darwin_file_end): If output to asm_out_file was redirected, append it
to the proper asm_out_file here. Add the section names section.
lto/ChangeLog:
* lto.h (struct lto_file_struct): Document offset member.
* lto-endian.h: New file.
* lto-macho.h: New file.
* lto-macho.c: New file.
* Make-lang.in: Add rule for lto-macho.o.
Steven Bosscher [Fri, 7 May 2010 20:49:29 +0000 (20:49 +0000)]
c-pragma.c (pending_weak_d, [...]): New.
* c-pragma.c (pending_weak_d, pending_weak): New.
(pending_weaks): Change the type to VEC((pending_weak,gc) *.
(maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
handle_pragma_weak): Update the uses of pending_weaks.
* tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
(is_loop_prefetching_profitable): Do not insert prefetches
when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
times the prefetch ahead distance.
* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
Account for loop unrolling in the insn-to-prefetch ratio heuristic.
(loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
the unroll_factor.
* gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
the linker plugin.
(store_arg): Queue temp_filename for deletion instead of
the whole argument.
lto-plugin/
* lto-plugin.c (free_2): Do not free resolution_file.
(write_resolution): Check that we were passed a resolution file.
(all_symbols_read_handler): Adjust.
(cleanup_handler): Do not remove the resolution file.
(process_option): Handle -fresolution=.
Fabien Chêne [Fri, 7 May 2010 15:52:06 +0000 (15:52 +0000)]
re PR c++/43951 (Revision 158918 miscompiled 483.xalancbmk in SPEC CPU 2006)
PR c++/43951
* init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
error count. Emit errors only if compain is true.
(build_new_1): Do not return error_mark_node if
diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
errors. Delay the check for user-provided constructor.
(perform_member_init): Adjust.
* cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
prototype.
Richard Biener [Fri, 7 May 2010 15:52:01 +0000 (15:52 +0000)]
lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2010-05-07 Richard Guenther <rguenther@suse.de>
* lto-wrapper.c (DUMPBASE_SUFFIX): Define.
(run_gcc): Handle LTRANS phase invocation.
* collect2.c (maybe_run_lto_and_relink): Do not set
WPA_SAVE_LTRANS.
lto/
* lto.c (DUMPBASE_SUFFIX): Remove.
(lto_execute_ltrans): Move functionality to lto-wrapper.c.
Rename to ...
(lto_write_ltrans_list): ... only output the list of ltrans files.
(lto_maybe_unlink): Remove.
(do_whole_program_analysis): Do not execute LTRANS phase
from here.
* c-typeck.c (build_binary_op): Warn ordered comparison of pointer
with null pointer and also warn about ordered comparison of zero
with pointer if -Wextra.
* gcc.dg/ordered-comparison-1.c: New test.
* gcc.dg/ordered-comparison-2.c: New test.
* gcc.dg/ordered-comparison-3.c: New test.
* gcc.dg/ordered-comparison-4.c: New test.
Jonathan Wakely [Thu, 6 May 2010 19:57:58 +0000 (19:57 +0000)]
re PR libstdc++/44014 (no std::string in API documentation)
2010-05-06 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/44014
* include/bits/stringfwd.h: Add doxygen comments and new group.
* include/bits/basic_string.h: Add to new doxygen group.
* doc/doxygen/user.cfg.in (ALIASES): Link to correct group.
Jason Merrill [Thu, 6 May 2010 19:46:14 +0000 (15:46 -0400)]
gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
gcc:
* gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
ret appropriately.
(gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
gcc/cp:
* semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
Jason Merrill [Thu, 6 May 2010 19:46:03 +0000 (15:46 -0400)]
gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for stripping WITH_SIZE_EXPR.
* gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
stripping WITH_SIZE_EXPR.
(gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
change.
Michael Matz [Thu, 6 May 2010 13:54:32 +0000 (13:54 +0000)]
re PR tree-optimization/43984 (PRE misses full-redundancies, inserts into loops)
PR tree-optimization/43984
* tree-ssa-pre.c (inserted_phi_names): Remove.
(inserted_exprs): Change to bitmap.
(create_expression_by_pieces): Set bits, don't append to vector.
(insert_into_preds_of_block): Don't handle inserted_phi_names.
(eliminate): Don't look at inserted_phi_names, remove deleted
insns from inserted_exprs.
(remove_dead_inserted_code): Adjust to use bitmaps instead of
vectors.
(init_pre, fini_pre): Allocate and free bitmaps.
(execute_pre): Insert insns on edges before elimination.