1. 04 Feb, 2014 25 commits
    • [multiple changes] · 2db5b47e
      2014-02-04  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_aggr.adb: Change "runtime" to "run time" in warning message,
      	for consistency with other messages.
      
      2014-02-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb  (Expand_Iterator_Loop):  For a container element
      	iterator, indicate that the element is a constant if the container
      	type does not have a variable indexing aspect.
      	* sem_ch8.adb (Analyze_Object_Renaming): If the entity is already
      	marked as constant, do not reset its Ekind, to ensure that
      	container elements in an element loop are not modified if the
      	container (e.g. a hashed set) only has a constant indexing aspect.
      
      2014-02-04  Arnaud Charlet  <charlet@adacore.com>
      
      	* g-souinf.ads: Subprograms in this unit are actually not pure.
      	* freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics.
      	* einfo.ads (Is_Pure): Update doc to match implementation.
      
      From-SVN: r207469
      Arnaud Charlet committed
    • [multiple changes] · 5a521b8a
      2014-02-04  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch13.adb: Minor spelling fix.
      
      2014-02-04  Robert Dewar  <dewar@adacore.com>
      
      	* opt.ads: Minor comment update.
      
      2014-02-04  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite
      	instead of Replace.
      
      2014-02-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings
      	on null expressions if component type is non-null, when the
      	corresponding association covers an empty range of index values.
      
      From-SVN: r207468
      Arnaud Charlet committed
    • [multiple changes] · 81bd8c90
      2014-02-04  Robert Dewar  <dewar@adacore.com>
      
      	* sinfo.ads: Further comments on N_Expression_With_Actions node.
      
      2014-02-04  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global
      	variables Out_Items and Ref_Global. Remove local constant
      	Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7
      	and D8. Remove the useless collection of global items as this
      	was a leftover from an earlier version of the routine. Move
      	several routines out to avoid deep nesting and indentation.
      	(Inputs_Match): Add formal parameter Dep_Clause. Rename formal
      	parameter Do_Checks to Post_Errors. Update the comment on usage.
      	(Is_Matching_Input): Renamed to Input_Match. Add formal parameters
      	Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks
      	to Post_Errors. Update the comment on usage. Account for the
      	case where a self referential state may have a null input_list.
      	(Is_Self_Referential): New routine.
      
      2014-02-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the
      	entity renames an expression, as in the case of an object of
      	an unconstrained type initialized by a function call, defer the
      	rewriting of the expression to the expander.
      	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
      	'Alignment): If the entity renames an expression, introduce
      	temporary to capture value, and rewrite original declaration to
      	use temporary.
      
      From-SVN: r207467
      Arnaud Charlet committed
    • [multiple changes] · ebdaa81b
      2014-02-04  Gary Dismukes  <dismukes@adacore.com>
      
      	* g-comlin.adb: Minor typo fix.
      
      2014-02-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Freeze_All): Types derived from a formal
      	access_to_classwide type do not have a finalization master.
      
      2014-02-04  Robert Dewar  <dewar@adacore.com>
      
      	* sprint.adb: Minor reformatting.
      
      2014-02-04  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
      	cases where Actions is a null list.
      	* sinfo.ads (N_Expression_With_Actions): Actions can be
      	temporarily empty during semantic analysis, but must be non-empty
      	in the final expanded tree.
      
      From-SVN: r207466
      Arnaud Charlet committed
    • re PR tree-optimization/60002 (ICE: SIGSEGV in skip_artificial_parms_for() with… · 029ce7a2
      re PR tree-optimization/60002 (ICE: SIGSEGV in skip_artificial_parms_for() with -O2 -fcompare-debug -fdeclone-ctor-dtor -fipa-cp-clone)
      
      	PR tree-optimization/60002
      	* cgraphclones.c (build_function_decl_skip_args): Clear
      	DECL_LANG_SPECIFIC.
      
      	* g++.dg/opt/pr60002.C: New test.
      
      From-SVN: r207465
      Jakub Jelinek committed
    • re PR tree-optimization/60023 (ICE: verify_gimple failed: dead STMT in EH table… · 8e91d222
      re PR tree-optimization/60023 (ICE: verify_gimple failed: dead STMT in EH table with -O3 -fnon-call-exceptions -mavx2)
      
      	PR tree-optimization/60023
      	* tree-if-conv.c (predicate_mem_writes): Pass true instead of
      	false to gsi_replace.
      	* tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
      	has been in some EH region and vec_stmt could throw, add
      	vec_stmt into the same EH region.
      	* tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
      	has no lhs, ignore it.
      	* internal-fn.c (expand_MASK_LOAD): Likewise.
      
      	* g++.dg/vect/pr60023.cc: New test.
      
      From-SVN: r207464
      Jakub Jelinek committed
    • re PR ipa/60026 (ICE at -O3 on valid code (with the optimize pragma) on x86_64-linux-gnu) · eb259c4a
      	PR ipa/60026
      	* tree-inline.c (copy_forbidden): Fail for
      	__attribute__((optimize (0))) functions.
      
      	* c-c++-common/torture/pr60026.c: New test.
      
      From-SVN: r207463
      Jakub Jelinek committed
    • re PR other/58712 (issues found by --enable-checking=valgrind) · 30540e79
      	PR other/58712
      	* omp-low.c (simd_clone_struct_copy): If from->inbranch
      	is set, copy one less argument.
      	(expand_simd_clones): Don't subtract clone_info->inbranch
      	from simd_clone_struct_alloc argument.
      
      From-SVN: r207462
      Jakub Jelinek committed
    • re PR other/58712 (issues found by --enable-checking=valgrind) · 92d05580
      	PR other/58712
      	* omp-low.c (simd_clone_struct_copy): If from->inbranch
      	is set, copy one less argument.
      
      From-SVN: r207461
      Jakub Jelinek committed
    • re PR rtl-optimization/57915 (ICE in set_address_disp, at rtlanal.c:5537) · be3afd67
      	PR rtl-optimization/57915
      	* recog.c (simplify_while_replacing): If all unary/binary/relational
      	operation arguments are constant, attempt to simplify those.
      
      	* gcc.target/i386/pr57915.c: New test.
      
      From-SVN: r207460
      Jakub Jelinek committed
    • re PR sanitizer/60055 (Invalid binding of __tsan_default_options) · 81c87471
      	PR sanitizer/60055
      	* tsan/tsan_flags.cc (__tsan_default_options): Add
      	SANITIZER_INTERFACE_ATTRIBUTE.  Backport from upstream r200747.
      	* tsan/tsan_rtl.cc (__tsan::OnFinalize): Likewise.
      
      From-SVN: r207459
      Jakub Jelinek committed
    • Fix g++.dg/init/dso_handle2.C on Solaris · 25c90aae
      	* g++.dg/init/dso_handle2.C: Compile with -fuse-cxa-atexit.
      
      From-SVN: r207458
      Rainer Orth committed
    • re PR middle-end/59261 (FAIL: gcc.dg/vect/bb-slp-26.c -flto -ffat-lto-objects… · 66b3ed5f
      re PR middle-end/59261 (FAIL: gcc.dg/vect/bb-slp-26.c -flto -ffat-lto-objects (internal compiler error))
      
      	PR middle-end/59261
      	* expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
      	if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
      
      	* gcc.dg/pr59261.c: New test.
      
      From-SVN: r207456
      Jakub Jelinek committed
    • re PR tree-optimization/60012 (Vectorizer generates unnecessary loop versioning for alias) · 5961d779
      2014-02-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/60012
      	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
      	TBAA disambiguation to all DDRs.
      
      	* gcc.dg/vect/pr60012.c: New testcase.
      
      From-SVN: r207455
      Richard Biener committed
    • Ensure libgcc_s unwinder is always used on 64-bit Solaris 10+/x86 (PR target/59788) · 91da0481
      	gcc:
      	PR target/59788
      	* config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
      	(LINK_SPEC): Use it for -shared, -shared-libgcc.
      
      	libgcc:
      	PR target/59788
      	* config/t-slibgcc-sld (libgcc-unwind.map): New target.
      	(install-libgcc-unwind-map-forbuild): New target.
      	(all): Depend on install-libgcc-unwind-map-forbuild.
      	(install-libgcc-unwind-map): New target.
      	(install): Depend on install-libgcc-unwind-map.
      
      	gcc/testsuite:
      	PR target/59788
      	* g++.dg/eh/unwind-direct.C: New test.
      
      	toplevel:
      	PR target/59788
      	* ltmain.sh (opt_duplicate_compiler_generated_deps): Enable on
      	*solaris2*.
      
      From-SVN: r207454
      Rainer Orth committed
    • tsan-dg.exp (tsan_init): Set trivial testcase timeout value to 20s. · f8e162b7
      	* lib/tsan-dg.exp (tsan_init): Set trivial testcase
      	timeout value to 20s.
      
      From-SVN: r207453
      Uros Bizjak committed
    • re PR sanitizer/60038 (AddressSanitizer CHECK failed ... "((*tls_addr +… · 5ab39ec3
      re PR sanitizer/60038 (AddressSanitizer CHECK failed ... "((*tls_addr + *tls_size)) <= ((*stk_addr + *stk_size))" on CentOS 5.10)
      
      	PR sanitizer/60038
      	* sanitizer_common/sanitizer_linux_libcdep.cc: Include
      	sanitizer_atomic.h and unistd.h.
      	(kThreadDescriptorSize): Made static, remove initializer and const,
      	change type to atomic_uintptr_t.
      	(ThreadDescriptorSize): Use confstr(_CS_GNU_LIBC_VERSION, ...) to
      	query glibc version, compute kThreadDescriptorSize depending on
      	glibc version minor number.
      	(GetThreadStackAndTls): Use ThreadDescriptorSize() instead of
      	kThreadDescriptorSize directly.
      
      From-SVN: r207452
      Jakub Jelinek committed
    • re PR ipa/59882 (internal compiler error: Segmentation fault) · 39960d1c
      
      	PR ipa/59882
      	* tree.c (get_binfo_at_offset): Do not get confused by empty classes;
      	* g++.dg/torture/pr59882.C: New testcase
      
      From-SVN: r207451
      Jan Hubicka committed
    • gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove. · 6f746413
      
      	* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
      	* gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
      
      From-SVN: r207450
      Jan Hubicka committed
    • re PR ipa/59469 (LLVM build failure with gcc LTO) · 5f876ae7
      
      	PR ipa/59469
      	* lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
      	merge force_output and forced_by_abi flags.
      
      From-SVN: r207449
      Jan Hubicka committed
    • ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer... · 5bccb77a
      
      	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
      	lookup via vtable pointer; check for type consistency
      	and turn inconsitent facts into UNREACHABLE.
      	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
      	* gimple-fold.c (gimple_get_virt_method_for_vtable): 
      	Do not ICE on type inconsistent querries; return UNREACHABLE
      	instead.
      
      	* testsuite/g++.dg/ipa/devirt-25.C: New testcase.
      
      From-SVN: r207448
      Jan Hubicka committed
    • ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer... · 9de2f554
      
      	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
      	lookup via vtable pointer; check for type consistency
      	and turn inconsitent facts into UNREACHABLE.
      	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
      	* gimple-fold.c (gimple_get_virt_method_for_vtable): 
      	Do not ICE on type inconsistent querries; return UNREACHABLE
      	instead.
      
      	* g++.dg/ipa/devirt-25.C: New testcase.
      
      From-SVN: r207447
      Jan Hubicka committed
    • re PR tree-optimization/59924 (uninit memory hog) · 4b076d8a
      	PR tree-optimization/59924
      	* gcc.dg/pr59924.c: New test.
      
      From-SVN: r207446
      Jakub Jelinek committed
    • Daily bump. · c7793f06
      From-SVN: r207445
      GCC Administrator committed
  2. 03 Feb, 2014 15 commits
    • re PR tree-optimization/59924 (uninit memory hog) · ade3ff24
      PR tree-opt/59924
      
              * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
              already processed this node.
              (normalize_one_pred_1): Pass along mark_set.
              (normalize_one_pred): Create and destroy a pointer_set_t.
              (normalize_one_pred_chain): Likewise.
      
      From-SVN: r207442
      Richard Henderson committed
    • re PR gcov-profile/58602 (.gcno files not truncated at gcov_close) · 55428cc3
      	PR gcov-profile/58602
              * gcc/gcov-io.c (gcov_open): Open with truncation when mode<0
      
      From-SVN: r207441
      Laurent Alfonsi committed
    • re PR ipa/59831 (ice in cgraph_speculative_call_info with -O3) · 85942f45
      
      	PR ipa/59831
      	* g++.dg/ipa/devirt-24.C: New testcase.
      
      	* ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on -fno-devirtualize;
      	Try to devirtualize by the knowledge of virtual table pointer given by
      	aggregate propagation.
      	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
      	ipa_print_node_jump_functions): Dump also offset that
      	is relevant for polymorphic calls.
      	(determine_known_aggregate_parts): Add arg_type parameter; use it
      	instead of determining the type from pointer type.
      	(ipa_compute_jump_functions_for_edge): Update call of
      	determine_known_aggregate_parts.
      	* gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
      	(gimple_get_virt_method_for_binfo): ... here; simplify using
      	vtable_pointer_value_to_vtable.
      	* gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
      	* ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
      	to unsigned HOST_WIDE_INT; Use vtable_pointer_value_to_vtable.
      	(vtable_pointer_value_to_vtable): Break out from ...; handle also
      	POINTER_PLUS_EXPR.
      	(vtable_pointer_value_to_binfo): ... here.
      	* ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
      
      From-SVN: r207439
      Jan Hubicka committed
    • tree-vect-slp.c (vect_supported_load_permutation_p): Avoid redef of outer loop index variable. · bddc974e
      2014-02-03  Teresa Johnson  <tejohnson@google.com>
      
      	* tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
      	redef of outer loop index variable.
      
      From-SVN: r207437
      Teresa Johnson committed
    • re PR c++/53017 (Integer constant expression not constant enough for vector_size) · 5d77fb19
      2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR c++/53017
      	PR c++/59211
      gcc/c-family/
      	* c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
      	handle_vector_size_attribute, handle_nonnull_attribute): Call
      	default_conversion on the attribute argument.
      	(handle_nonnull_attribute): Increment the argument number.
      gcc/cp/
      	* tree.c (handle_init_priority_attribute): Call default_conversion on
      	the attribute argument.
      gcc/
      	* doc/extend.texi (Function Attributes): Typo.
      gcc/testsuite/
      	* c-c++-common/attributes-1.c: New testcase.
      	* g++.dg/cpp0x/constexpr-attribute2.C: Likewise.
      
      From-SVN: r207436
      Marc Glisse committed
    • re PR c++/58871 ([c++11] ICE with defaulted copy constructor in broken template class hierarchy) · f344f525
      /cp
      2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58871
      	* method.c (synthesized_method_walk): If vbases is non-null but
      	is_empty is true, likewise don't worry about the virtual bases.
      
      /testsuite
      2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58871
      	* g++.dg/cpp0x/pr58871.C: New.
      
      From-SVN: r207434
      Paolo Carlini committed
    • re PR tree-optimization/60000 (GCC trunk build failure caused by the vectorizer) · cf5b2be2
      2014-02-03  Cong Hou  <congh@google.com>
      
      	PR tree-optimization/60000
      	* tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
      	if the vectorized statement is a store.  A store statement can only
      	appear at the end of pattern statements.
      
      2014-02-03  Cong Hou  <congh@google.com>
      
      	PR tree-optimization/60000
      	* g++.dg/vect/pr60000.cc: New test.
      
      From-SVN: r207433
      Cong Hou committed
    • ltmain.sh: Patch for Solaris. · e3aaedd6
      From Rainer Orth.
      
      From-SVN: r207432
      Ian Lance Taylor committed
    • * gcc_update (files_and_dependencies): Add aarch64-tune.md. · 37f14a0d
      From-SVN: r207429
      Brooks Moses committed
    • Add -mlong-double-128 and make it default for 64-bit Bionic · a2a1ddb5
      gcc/
      
      	* config/i386/i386.c (flag_opts): Add -mlong-double-128.
      	(ix86_option_override_internal): Default long double to 64-bit for
      	32-bit Bionic and to 128-bit for 64-bit Bionic.
      
      	* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
      	TARGET_LONG_DOUBLE_128 is true.
      	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
      
      	* config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
      	(mlong-double-64): Negate -mlong-double-128.
      	(mlong-double-128): New option.
      
      	* config/i386/i386-c.c (ix86_target_macros): Define
      	__LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
      
      	* doc/invoke.texi: Document -mlong-double-128.
      
      gcc/testsuite/
      
      	* gcc.target/i386/long-double-64-1.c: Verify __multf3 isn't used.
      	* gcc.target/i386/long-double-64-4.c: Likewise.
      	* gcc.target/i386/long-double-80-1.c: Likewise.
      	* gcc.target/i386/long-double-80-2.c: Likewise.
      	* gcc.target/i386/long-double-80-3.c: Likewise.
      	* gcc.target/i386/long-double-80-4.c: Likewise.
      	* gcc.target/i386/long-double-80-5.c: Likewise.
      	* gcc.target/i386/long-double-64-2.c: Limit to ia32.  Verify
      	__multf3 isn't used.
      	* gcc.target/i386/long-double-64-3.c: Likewise.
      	* gcc.target/i386/long-double-128-1.c: New test.
      	* gcc.target/i386/long-double-128-2.c: Likewise.
      	* gcc.target/i386/long-double-128-3.c: Likewise.
      	* gcc.target/i386/long-double-128-4.c: Likewise.
      	* gcc.target/i386/long-double-128-5.c: Likewise.
      	* gcc.target/i386/long-double-128-6.c: Likewise.
      	* gcc.target/i386/long-double-128-7.c: Likewise.
      	* gcc.target/i386/long-double-128-8.c: Likewise.
      	* gcc.target/i386/long-double-128-9.c: Likewise.
      	* gcc.target/i386/long-double-64-5.c: Likewise.
      	* gcc.target/i386/long-double-64-6.c: Likewise.
      	* gcc.target/i386/long-double-64-7.c: Likewise.
      	* gcc.target/i386/long-double-64-8.c: Likewise.
      	* gcc.target/i386/long-double-64-9.c: Likewise.
      	* gcc.target/i386/long-double-80-10.c: Likewise.
      	* gcc.target/i386/long-double-80-8.c: Likewise.
      	* gcc.target/i386/long-double-80-9.c: Likewise.
      
      From-SVN: r207428
      H.J. Lu committed
    • Check if mode is OK first · f742cf90
      	PR rtl-optimization/60024
      	* sel-sched.c (init_regs_for_mode): Check if mode is OK first.
      
      From-SVN: r207427
      H.J. Lu committed
    • invoke.texi: (fprofile-reorder-functions): Fix typo. · 8f36fd30
      2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
      
      	* doc/invoke.texi: (fprofile-reorder-functions): Fix typo.
      
      From-SVN: r207423
      Markus Trippelsdorf committed
    • Actually add the test case from the previous commit. · cbb43664
      From-SVN: r207422
      Andrey Belevantsev committed
    • re PR rtl-optimization/57662 (ICE: SIGSEGV in code_motion_process_successors… · 861ec4f3
      re PR rtl-optimization/57662 (ICE: SIGSEGV in code_motion_process_successors with -fschedule-insns2 -fselective-scheduling2)
      
      gcc/
      	PR rtl-optimization/57662
      	* sel-sched.c (code_motion_path_driver): Do not mark already not
      	existing blocks in the visiting bitmap.
      
      testsuite/
      	PR rtl-optimization/57662
      	* g++.dg/pr57662.C: New test.
      
      From-SVN: r207421
      Andrey Belevantsev committed
    • sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P on the insn being emitted. · fe08255d
              * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
              on the insn being emitted.
      
      From-SVN: r207420
      Andrey Belevantsev committed