Commit Graph

95380 Commits

Author SHA1 Message Date
Tobias Burnus
cf651ca2e5 re PR fortran/51207 ([OOP] Mark __def_init_... as FL_PARAMETER)
2011-11-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51207
        * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
        and hence as TREE_READONLY; add subroutine attribute to
        __copy_ procedure.

        PR fortran/50640
        * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
        * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab
        as GFC_DECL_PUSH_TOPLEVEL.
        (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
        (build_function_decl): Push __copy_ procedure to the toplevel.

From-SVN: r181505
2011-11-19 10:26:33 +01:00
Jan Hubicka
ea5cbe6161 i386.c (atom_cost): Disable SSE loop until alignment issues are fixed.
* config/i386/i386.c (atom_cost): Disable SSE loop until alignment
	issues are fixed.

From-SVN: r181503
2011-11-19 01:34:55 +00:00
GCC Administrator
b262d797e1 Daily bump.
From-SVN: r181501
2011-11-19 00:18:48 +00:00
Joseph Myers
afd87d51e2 * gcc.dg/cpp/assert4.c: Test __linux__, not __gnu_linux__.
From-SVN: r181496
2011-11-18 22:26:47 +00:00
Anatoly Sokolov
2283c41652 cris.c (cris_function_value_regno_p): Make static.
* config/cris/cris.c (cris_function_value_regno_p): Make static.
	(TARGET_FUNCTION_VALUE_REGNO_P): Define.
	* config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
	* config/cris/cris-protos.h (cris_function_value_regno_p): Remove.

From-SVN: r181493
2011-11-19 01:23:08 +04:00
Fabien Chêne
e5df9bfc89 re PR c++/51188 (invalid static_cast from type 'XBase' to type 'int')
gcc/testsuite/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

	PR c++/51188
	* g++.dg/lookup/using46.C: New.
	* g++.dg/lookup/using47.C: New.
	* g++.dg/lookup/using48.C: New.
	* g++.dg/lookup/using49.C: New.
	* g++.dg/lookup/using50.C: New.

gcc/cp/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

	PR c++/51188
	* search.c (lookup_field_1): Handle USING_DECLs for the storted
	case.

From-SVN: r181492
2011-11-18 21:32:04 +01:00
H.J. Lu
f32c951e2c Add _mm_stream_si64.
2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/33944
	* doc/extend.texi: Document __builtin_ia32_movnti64.

	* config/i386/emmintrin.h (_mm_stream_si64): New.

	* config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
	(bdesc_special_args): Update __builtin_ia32_movnti.  Add
	__builtin_ia32_movnti64.
	(ix86_expand_special_args_builtin): Handle
	VOID_FTYPE_PLONGLONG_LONGLONG.

	* config/i386/i386.md (UNSPEC_MOVNTI): New.

	* config/i386/sse.md (sse2_movntsi): Renamed to ...
	(sse2_movnti<mode>): This.

From-SVN: r181491
2011-11-18 11:02:45 -08:00
Fabien Chêne
52e4e221bd re PR c++/51141 (rev181359 causes Chromium build failure)
gcc/testsuite/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

	PR c++/51141
	* g++.dg/lookup/using46.C: New.
	* g++.dg/lookup/using47.C: New.
	* g++.dg/lookup/using48.C: New.
	* g++.dg/lookup/using49.C: New.
	* g++.dg/lookup/using50.C: New.

gcc/cp/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

	PR c++/51141
	* search.c (lookup_field_1): Handle USING_DECLs for the storted
	case.

From-SVN: r181490
2011-11-18 19:44:23 +01:00
Ulrich Weigand
4a0051e4db pr44707.c: Do not assume assembler supports /* ...
* gcc.c-torture/compile/pr44707.c: Do not assume assembler
	supports /* ... */ comments.

From-SVN: r181489
2011-11-18 18:17:05 +00:00
Georg-Johann Lay
7bc6df2ca1 re PR target/49868 (Implement named address space to place/access data in flash memory)
gcc/
	PR target/49868
	* config/avr/avr.h (base_arch_s): Add field n_segments.
	(ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
	ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
	(AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
	(INIT_EXPANDERS): New define.
	* config/avr/avr-protos.h (avr_mem_pgmx_p): New.
	(avr_init_expanders): New.
	(avr_emit_movmemhi, avr_out_movmem): New.
	(avr_xload_libgcc_p): New.
	* config/avr/avr-c.c (avr_register_target_pragmas): Register
	address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
	(avr_cpu_cpp_builtins): Add built-in defines __PGM1,
	__PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
	* config/avr/avr-devices.c (avr_arch_types): Set field n_segments.

	* config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
	3 bits instead of just 1.
	(xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
	(progmem_section): Change from section to array of sections.
	(progmem_section_prefix): New static variable.
	(avr_file_start): Print set for __RAMPZ__
	(avr_option_override): Move initialization of RTXes from here...
	(avr_init_expanders): ...to this new function.
	(avr_pgm_segment): New static function.
	(avr_decl_pgm_p): Handle error_mark_node.
	(avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
	(avr_out_xload,	avr_find_unused_d_reg): New static functions.
	(expand_prologue, expand_epilogue): Use rampz_rtx.
	(print_operand): Hande CONST_STRING.
	(avr_xload_libgcc_p): New static function.
	(avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
	(avr_progmem_p): Return 2 for 24-bit flash address space.
	(avr_out_sbxx_branch): Clean-up code from ASn macros.
	(out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
	address and print symbolically.
	(avr_asm_named_section, avr_section_type_flags,
	avr_encode_section_info, avr_asm_select_section,
	avr_addr_space_address_mode, avr_addr_space_pointer_mode,
	avr_addr_space_legitimate_address_p, avr_addr_space_convert,
	avr_addr_space_legitimize_address): Handle new address spaces.
	(avr_output_progmem_section_asm_op): New static function.
	(avr_asm_init_sections): Initialize progmem_section[].
	(adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
	(avr_const_address_lo16): New static function.
	(avr_assemble_integer): Use it to handle 3-byte integers.
	(avr_emit_movmemhi, avr_out_movmem): New functions.
	
	* config/avr/predicates.md (nox_general_operand): Handle new
	address spaces.
	* config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
	(adjust_len): Add xload, movmem.
	(SP_ADDR): New define_constants.
	(isa): Add "lpm", "lpmx", "elpm", "elpmx".
	(enabled): Handle them.
	(load<mode>_libgcc): New expander.
	(*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
	(xload8_A, xload<mode>_A): New insn-and-splits.
	(xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
	(mov<mode>): Handle new address spaces.
	(movmemhi): Rewrite using avr_emit_movmemhi.
	(MOVMEM_r_d): New mode attribute.
	(movmem_<mode>, movmem_qi_elpm): New insns.
	(setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
	C-code.  Use label instead of hard-coded instrunction lengths.
	
libgcc/
	PR target/49868
	* config/avr/t-avr (LIB1ASMFUNCS): Add _xload_2 _xload_3 _xload_4.
	* config/avr/lib1funcs.S (__xload_2, __xload_3, __xload_4):
	New functions.

From-SVN: r181482
2011-11-18 16:44:00 +00:00
Paolo Carlini
112eadc763 re PR c++/51150 ([C++11][4.6/4.7 Regression] ICE when result of -> initializes const variable of different type)
/cp
2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51150
	* pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR.

/testsuite
2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51150
	* g++.dg/cpp0x/pr51150.C: New.

From-SVN: r181478
2011-11-18 15:31:38 +00:00
Martin Jambor
39cc8c3d6b re PR tree-optimization/50605 (ice in ipa_get_jf_pass_through_result with -O3)
2011-11-18  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/50605
	* gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
	of IPA invariant decls.

	* testsuite/g++.dg/ipa/pr50605.C: New test.

From-SVN: r181477
2011-11-18 16:13:54 +01:00
Bill Schmidt
f252165363 tree-outof-ssa.c (insert_back_edge_copies): Add call to mark_dfs_back_edges.
2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* tree-outof-ssa.c (insert_back_edge_copies):  Add call to
	mark_dfs_back_edges.

From-SVN: r181476
2011-11-18 14:15:38 +00:00
Dodji Seketeli
0c3251f0aa PR c++/51191 - ICE on alias of alias template instantiation
gcc/cp/

	PR c++/51191
	* pt.c (primary_template_instantiation_p): Don't forget to
	consider alias declarations.

gcc/testsuite/

	PR c++/51191
	* g++.dg/cpp0x/alias-decl-13.C: New test.

From-SVN: r181475
2011-11-18 15:07:41 +01:00
Iain Sandoe
590175d228 re PR target/50678 (FAIL: c52104y on x86_64-apple-darwin10)
gcc/ada:

	PR target/50678
	* init.c (__gnat_error_handler) [Darwin]: Move work-around to the
	bug filed as radar #10302855 from __gnat_error_handler ...
	... to (__gnat_adjust_context_for_raise) [Darwin]: New.
	(HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE) [Darwin]: Define.
	(__gnat_error_handler) [Darwin]: Use __gnat_adjust_context_for_raise.

From-SVN: r181474
2011-11-18 13:19:25 +00:00
Tristan Gingold
1e1ae0afd8 re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11)
gcc/ada:

2011-11-18  Tristan Gingold  <gingold@adacore.com>
	    Iain Sandoe  <iains@gcc.gnu.org>

	PR target/49992
	* mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove.
	* gcc-interface/Makefile.in (darwin): Remove ranlib special-casing
	for Darwin.


Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org>

From-SVN: r181470
2011-11-18 10:54:21 +00:00
Iain Sandoe
10eb188cac re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11)
toplevel:

	PR target/49992
	* configure.ac: Remove ranlib special-casing for Darwin.
	* configure: Regenerate.

gcc:

	PR target/49992
	* configure.ac: Remove ranlib special-casing for Darwin.
	* configure: Regenerate.

From-SVN: r181469
2011-11-18 10:52:32 +00:00
Uros Bizjak
fff6a306ae re PR tree-optimization/51118 (ICE: tree check: expected tree that contains ‘typed’ structure, have ‘block’ in fold_checksum_tree, at fold-const.c:14160)
PR tree-optimization/51118
	* fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
	before using TREE_TYPE accessor on expr.

From-SVN: r181468
2011-11-18 10:54:02 +01:00
Jan Hubicka
108879aa86 re PR target/51134 (x86 memset/memcpy expansion is broken)
PR bootstrap/51134
	* i386.c (atom_cost): Fix 32bit memset description.
	(expand_set_or_movmem_via_loop_with_iter): Output proper bounds check for epilogue loops.
	(expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing byte loop.
	(decide_alg): sse_loop is not useable wthen SSE2 is disabled; when not optimizing always
	use rep movsb or lincall; do not produce word sized loops when optimizing memset for
	size (to avoid need for large constants).
	(ix86_expand_movmem): Get into sync with ix86_expand_setmem; choose unroll factors
	better; always do 128bit moves when producing SSE loops; do not produce loopy epilogue
	when size is too small.
	(promote_duplicated_reg_to_size): Do not look into desired alignments when
	doing vector expansion.
	(ix86_expand_setmem): Track better when promoted value is available; choose unroll factors
	more sanely.; output loopy epilogue only when needed.

From-SVN: r181466
2011-11-18 02:18:28 +00:00
GCC Administrator
a98f3def7e Daily bump.
From-SVN: r181464
2011-11-18 00:18:46 +00:00
Richard Henderson
f6d9912f6b Merge branch 'rth/atomic/ppc'
From-SVN: r181459
2011-11-17 14:12:31 -08:00
Steve Ellcey
6725cc583f re PR middle-end/51144 (r181279 possibly miscompilation of genmddeps)
2011-11-17  Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/51144
	* output.h (fprint_w): Remove.
	* final.c (fprint_w): Remove.
	(output_addr_const): Change fprint_w back to fprintf.

From-SVN: r181457
2011-11-17 21:22:11 +00:00
Andrew Pinski
6c1c875d6e host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
2011-11-17  Andrew Pinski  <apinski@cavium.com>

	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.

From-SVN: r181456
2011-11-17 13:01:08 -08:00
Jason Merrill
bb94892a9a re PR c++/51186 (declaring main() with auto but without --std=c++11 gives inconsistent error messages)
PR c++/51186
	* decl.c (grokdeclarator): Improve C++98 trailing return diagnostic.

From-SVN: r181455
2011-11-17 16:00:30 -05:00
Uros Bizjak
f6546dbc89 * lib/gcc-simulate-thread.exp (simulate-thread): Improve error message.
From-SVN: r181454
2011-11-17 22:00:16 +01:00
Andrew MacLeod
e351ae8587 builtins.c (expand_builtin): Remove 4th parameter representing weak/strong mode when...
2011-11-17  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c (expand_builtin): Remove 4th parameter representing 
	weak/strong mode when __atomic_compare_exchange becomes a library call.

	* gcc.dg/atomic-generic-aux.c (__atomic_compare_exchange): Fail if 
	memory model parameters don't match expected values.
	* gcc.dg/atomic-generic.c: Pass specific memory model parameters to
	__atomic_compare_exchange.
	* gcc.dg/atomic-noinline.c: Pass specific memory model parameters to
	__atomic_compare_exchange_n.
	* gcc.dg/atomic-noinline-aux.c (__atomic_compare_exchange_2): Remove
	weak/strong parameter and fail if memory models aren't correct.

From-SVN: r181453
2011-11-17 20:51:51 +00:00
Uros Bizjak
29e339fd2e gcc-simulate-thread.exp (simulate-thread): Run on all targets.
* lib/gcc-simulate-thread.exp (simulate-thread): Run on all targets.
	Look for simulate_thread_done to determine working gdb.  Reduce timeout
	to 10 seconds and fail when timeout occurs.  Improve error messages.

From-SVN: r181452
2011-11-17 20:56:39 +01:00
Richard Henderson
c39169c82c Unify implementations of __builtin_mem_*_fence and __sync_synchronize.
* builtins.c (expand_builtin_mem_thread_fence): Remove.
	(expand_builtin_mem_signal_fence): Remove.
	(expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
	(expand_builtin_sync_synchronize): Likewise.
	(expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
	* optabs.c (expand_asm_memory_barrier): Split out from
	expand_builtin_mem_signal_fence.
	(expand_mem_thread_fence): New, a combination of code from
	expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
	(expand_mem_signal_fence): Moved and renamed from
	expand_builtin_mem_signal_fence.
	(expand_atomic_exchange): Use expand_mem_thread_fence.
	(expand_atomic_load, expand_atomic_store): Likewise.
	* expr.h, optabs.h: Update decls.

From-SVN: r181451
2011-11-17 11:29:04 -08:00
Bin Cheng
cfb9952179 re PR rtl-optimization/50663 (conditional propagation missed in cprop.c pass)
PR rtl-optimization/50663
	* cprop.c (implicit_set_indexes): New global variable.
	(insert_set_in_table): Add additional parameter and record implicit
	set information.
	(hash_scan_set): Add additional parameter and pass it to above.
	(hash_scan_insn): Pass false to hash_scan_set.
	(compute_hash_table_work): Pass true to hash_scan_set.
	(compute_cprop_data): Add implicit set to AVIN of block which the
	implicit set is recorded for.
	(one_cprop_pass): Handle implicit_set_indexes array.

From-SVN: r181446
2011-11-17 17:11:16 +00:00
Jason Merrill
830dea94f2 class.c (add_implicitly_declared_members): Update move conditions.
N3203
	* class.c (add_implicitly_declared_members): Update move
	conditions.

From-SVN: r181445
2011-11-17 11:35:11 -05:00
Jason Merrill
a8e237782f re PR c++/51137 ([C++0x] [4.7 Regression] ICE with -std=c++0x and virtual inheritance)
PR c++/51137
	* class.c (build_base_path): Don't do calculation in templates.

From-SVN: r181444
2011-11-17 11:34:59 -05:00
Michael Matz
f14c43566a re PR tree-optimization/50644 (ICE in set_is_used added today)
PR middle-end/50644
	PR middle-end/50741

	* tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
	current function.
	(remove_unused_locals): Ditto.

testsuite/

	* g++.dg/tree-ssa/pr50741.C: New.

From-SVN: r181443
2011-11-17 16:03:56 +00:00
Rainer Orth
1502e1556c Skip simulate-thread tests on all alpha targets
* lib/gcc-simulate-thread.exp (simulate-thread): Skip on
	alpha*-*-*.

From-SVN: r181441
2011-11-17 11:25:10 +00:00
Richard Henderson
4eace304b8 Copy ALIAS_SET_MEMORY_BARRIER when creating a new MEM for atomic ops.
* config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
	ALIAS_SET_MEMORY_BARRIER when creating a new memory.
	(alpha_split_atomic_exchange_12): Likewise.
	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.

From-SVN: r181436
2011-11-16 20:44:27 -08:00
GCC Administrator
091d26a69c Daily bump.
From-SVN: r181431
2011-11-17 00:18:35 +00:00
Uros Bizjak
e6972b8faa memopt-6.c: Cleanup tmedge tree dump.
* gcc.dg/tm/memopt-6.c: Cleanup tmedge tree dump.
	* gcc.dg/tm/memopt-13.c: Cleanup tmmark tree dump.
	* g++.dg/eh/array1.C: Cleanup gimple tree dump.

From-SVN: r181426
2011-11-17 00:09:17 +01:00
Tobias Burnus
c3f3495248 re PR fortran/39427 (F2003: Procedures with same name as types/type constructors)
gcc/fortran
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * decl.c (match_data_constant, match_data_constant,
        * variable_decl,
        gfc_match_decl_type_spec, access_attr_decl,
        check_extended_derived_type, gfc_match_derived_decl,
        gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
        with DT constructors.
        * gfortran.h (gfc_find_dt_in_generic,
        gfc_convert_to_structure_constructor): New function prototypes.
        * interface.c (check_interface0, check_interface1,
        gfc_search_interface): Ignore DT constructors in generic list.
        * match.h (gfc_match_structure_constructor): Update prototype.
        * match.c (match_derived_type_spec): Ensure that one uses the DT
        not the generic function.
        * module.c (MOD_VERSION): Bump.
        (dt_lower_string, dt_upper_string): New functions.
        (find_use_name_n, find_use_operator, compare_true_names,
        find_true_name, add_true_name, fix_mio_expr, load_needed,
        read_module, write_dt_extensions, write_symbol): Changes to deal with
        different symtree vs. sym names.
        (create_derived_type): Create also generic procedure.
        * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and
        * generic
        function as the same.
        * primary.c (gfc_convert_to_structure_constructor): New
        * function.
        (gfc_match_structure_constructor): Restructured; calls
        gfc_convert_to_structure_constructor.
        (build_actual_constructor, gfc_match_rvalue): Update for DT generic
        functions.
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
        is_illegal_recursion, resolve_generic_f, resolve_variable,
        resolve_fl_variable_derived, resolve_fl_derived0,
        resolve_symbol): Handle DT and DT generic constructors.
        * symbol.c (gfc_use_derived, gfc_undo_symbols,
        gen_special_c_interop_ptr, gen_cptr_param,
        generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
        derived-types, which are hidden in the generic type.
        (gfc_find_dt_in_generic): New function
        * trans-array.c (gfc_conv_array_initializer): Replace
        * FL_PARAMETER
        expr by actual value.
        * trans-decl.c (gfc_get_module_backend_decl,
        * gfc_trans_use_stmts):
        Ensure that we use the DT and not the generic function.
        * trans-types.c (gfc_get_derived_type): Ensure that we use the
        * DT
        and not the generic procedure.

gcc/testsuite/
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * gfortran.dg/constructor_1.f90: New.
        * gfortran.dg/constructor_2.f90: New.
        * gfortran.dg/constructor_3.f90: New.
        * gfortran.dg/constructor_4.f90: New.
        * gfortran.dg/constructor_5.f90: New.
        * gfortran.dg/constructor_6.f90: New.
        * gfortran.dg/use_only_5.f90: New.
        * gfortran.dg/c_ptr_tests_17.f90: New.
        * gfortran.dg/c_ptr_tests_18.f90: New.
        * gfortran.dg/used_types_25.f90: New.
        * gfortran.dg/used_types_26.f90: New
        * gfortran.dg/type_decl_3.f90: New.
        * gfortran.dg/function_types_3.f90: Update dg-error.
        * gfortran.dg/result_1.f90: Ditto.
        * gfortran.dg/structure_constructor_3.f03: Ditto.
        * gfortran.dg/structure_constructor_4.f03: Ditto.

From-SVN: r181425
2011-11-16 22:37:43 +01:00
Joseph Myers
16e835bb5c * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
From-SVN: r181423
2011-11-16 20:35:27 +00:00
David Edelsohn
27b0b3571e rs6000.c (rs6000_xcoff_section_type_flags): Default to minimum alignment if decl is NULL.
* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
        Default to minimum alignment if decl is NULL.

From-SVN: r181422
2011-11-16 13:33:52 -05:00
Uros Bizjak
c05e32f58d sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode sequence for AVX.
* config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
	sequence for AVX.
	(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.

From-SVN: r181421
2011-11-16 19:28:08 +01:00
Matthew Gretton-Dann
a6bbb56fef pr30858.c: Update expected output for architectures with multiple vector sizes.
2011-10-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* gcc.dg/vect/pr30858.c: Update expected output for
	architectures with multiple vector sizes.

From-SVN: r181420
2011-11-16 18:19:37 +00:00
Venkataramanan Kumar
0fe1f31b9e * doc/invoke.texi: Document AMD bdver1 and btver1.
From-SVN: r181417
2011-11-16 17:31:38 +00:00
Richard Earnshaw
77b1138b71 re PR target/49641 (Wrong code for ARMv4T and stmia)
2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
	    Bernd Schmidt <bernds@coudesourcery.com>
	    Sebastian Huber <sebastian.huber@embedded-brains.de>

	PR target/49641
	* config/arm/arm.c (store_multiple_sequence): Avoid cases where
	the base reg is stored iff compiling for Thumb1.

	* gcc.target/arm/pr49641.c: New test.

Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Sebastian Huber <sebastian.huber@embedded-brains.de>

From-SVN: r181416
2011-11-16 17:02:44 +00:00
Razya Ladelsky
1a4571cb56 re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)
PR tree-optimization/49960

	* tree-data-ref.c (initialize_data_dependence_relation): Add initializations. 
	Remove call to compute_self_dependence.
	(compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
	(compute_self_dependence): Remove old code. Add call to compute_affine_dependence.
	(compute_all_dependences): Remove call to compute_self_dependence. 
	Add call to compute_affine_dependence.

From-SVN: r181411
2011-11-16 15:01:47 +00:00
Razya Ladelsky
4122ed2b77 re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)
PR tree-optimization/49960

	* gcc.dg/autopar/pr49960.c: New test.
	* gcc.dg/autopar/pr49960-1.c: New test.

From-SVN: r181410
2011-11-16 14:59:14 +00:00
Razya Ladelsky
3f660e4726 re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)
PR tree-optimization/49960

	* gcc.dg/autopar/pr49960.c: New test.
	* gcc.dg/autopar/pr49960-1.c: New test.

From-SVN: r181409
2011-11-16 14:58:04 +00:00
Paolo Carlini
75abb33d21 2011-11-16 Paolo Carlini <paolo.carlini@oracle.com>
* Fix name in ChangeLog entry.

From-SVN: r181407
2011-11-16 10:23:59 +00:00
Andreas Krebbel
41272e2a5d re PR middle-end/50325 (76 new fails with rev. 177691)
2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR middle-end/50325
	* expmed.c (store_bit_field_1): Use extract_bit_field on big
	endian targets if the source cannot be exactly covered by word
	mode chunks.

From-SVN: r181405
2011-11-16 09:27:56 +00:00
Joseph Myers
4a7bdab0f2 i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to ELF_STRING_LIMIT.
* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
	ELF_STRING_LIMIT.

From-SVN: r181400
2011-11-16 00:21:56 +00:00
GCC Administrator
36fbf1dd21 Daily bump.
From-SVN: r181399
2011-11-16 00:18:50 +00:00
Richard Henderson
2371d1a0a1 alpha: Convert to atomic optabs.
From-SVN: r181395
2011-11-15 15:43:08 -08:00
Tom de Vries
f01fe5f68a pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.
2011-11-16  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.
	* gcc.dg/pr43864-2.c: Same.
	* gcc.dg/pr43864-3.c: Same.
	* gcc.dg/pr43864-4.c: Same.

From-SVN: r181393
2011-11-15 23:04:46 +00:00
Tom de Vries
fa405d7bbe tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
2011-11-16  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.

From-SVN: r181392
2011-11-15 23:04:39 +00:00
Alan Modra
1ff2fd21dc re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)
PR rtl-optimization/51051
	PR bootstrap/51086
	* function.c (thread_prologue_and_epilogue_insns): Guard
	emitting return with single_succ_p test.

From-SVN: r181391
2011-11-16 08:40:46 +10:30
Uros Bizjak
e35525e9b4 sse2-cvt-vec.c: New test.
* gcc.target/i386/sse2-cvt-vec.c: New test.
	* gcc.target/i386/avx-cvt-vec.c: Ditto.
	* gcc.target/i386/avx-cvt-2-vec.c: Ditto.

From-SVN: r181390
2011-11-15 20:40:04 +01:00
Joern Rennecke
f41fc8aaaa epiphany.md (mov<mode>cc): Fix code to get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
* config/epiphany/epiphany.md (mov<mode>cc): Fix code to
        get mode from CMP_OP1 if CMP_OP0 is VOIDmode.

From-SVN: r181388
2011-11-15 19:06:32 +00:00
Uros Bizjak
76a2c904df sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
* config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
	(vec_pack_sfix_trunc_v2df): Ditto.
	(vec_pack_sfix_v2df): Ditto.
	(vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
	avx_vec_concatv8si patterns.
	(vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
	avx_vec_concatv8si patterns.

testsuite/ChangeLog:

	* gcc.target/i386/avx-floor-sfix-2-vec.c: New test.
	* gcc.target/i386/avx-ceil-sfix-2-vec.c: Ditto.
	* gcc.target/i386/avx-rint-sfix-2-vec.c: Ditto.
	* gcc.target/i386/avx-round-sfix-2-vec.c: Ditto.

From-SVN: r181387
2011-11-15 19:45:20 +01:00
Iain Sandoe
6bbb00938c gcc-simulate-thread.exp (simulate-thread): Do not run on powerpc*-*-darwin* targets.
gcc/testsuite:

	* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
	powerpc*-*-darwin* targets.

From-SVN: r181384
2011-11-15 13:16:17 +00:00
Torvald Riegel
69b765189a Require parentheses when parsing transaction expressions.
gcc/
	* c-parser.c (c_parser_transaction_expression): Require parentheses
	when parsing transaction expressions.

	gcc/cp/
	* parser.c (cp_parser_transaction_expression): Require parentheses
	when parsing transaction expressions.

	gcc/testsuite/
	* c-c++-common/tm/trxn-expr-3.c: New test.

From-SVN: r181383
2011-11-15 12:16:13 +00:00
Tristan Gingold
0ea069123c incpath.c (get_added_cpp_dirs): New function.
2011-11-15  Tristan Gingold  <gingold@adacore.com>

	* incpath.c (get_added_cpp_dirs): New function.
	* incpath.h (get_added_cpp_dirs): Declare.
	* config/vms/vms-c.c (vms_c_register_includes): New function.
	(vms_std_modules): New variable.
	* config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
	(vms_c_register_includes): Declare.

From-SVN: r181380
2011-11-15 10:25:36 +00:00
Tristan Gingold
e50e723eec c-pragma.h (pragma_extern_prefix): Declare.
2011-11-15  Tristan Gingold  <gingold@adacore.com>

	* c-family/c-pragma.h (pragma_extern_prefix): Declare.
	* c-family/c-pragma.c (pragma_extern_prefix): Make it public.
	* config/vms/vms-c.c (saved_extern_prefix): New variable.
	(vms_pragma_extern_prefix): New function.
	(vms_c_register_pragma): Register vms_pragma_extern_prefix.

From-SVN: r181379
2011-11-15 10:22:55 +00:00
Georg-Johann Lay
7c20948114 re PR target/49868 (Implement named address space to place/access data in flash memory)
gcc/
	PR target/49868
	* config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
	(REGISTER_TARGET_PRAGMAS): New define.
	* config/avr/avr-protos.h (avr_mem_pgm_p): New.
	(avr_load_libgcc_p): New.
	(asm_output_external_libcall): Remove.
	(avr_register_target_pragmas): New.
	(avr_log_t): Add field "progmem".  Order alphabetically.
	* config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
	* config/avr/avr-c.c (langhooks.h): New include.
	(avr_register_target_pragmas): New function. Register address
	space __pgm.
	(avr_cpu_cpp_builtins): Add built-in define __PGM.
	* config/avr/avr.c: Include "c-family/c-common.h".
	(TARGET_LEGITIMATE_ADDRESS_P): Remove define.
	(TARGET_LEGITIMIZE_ADDRESS): Remove define.
	(TARGET_ADDR_SPACE_SUBSET_P): Define to...
	(avr_addr_space_subset_p): ...this new static function.
	(TARGET_ADDR_SPACE_CONVERT): Define to...
	(avr_addr_space_convert): ...this new static function.
	(TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
	(avr_addr_space_address_mode): ...this new static function.
	(TARGET_ADDR_SPACE_POINTER_MODE): Define to...
	(avr_addr_space_pointer_mode): ...this new static function.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
	(avr_addr_space_legitimate_address_p): ...this new static function.
	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
	(avr_addr_space_legitimize_address): ...this new static function.
	(avr_mode_code_base_reg_class): Handle address spaces.
	(avr_regno_mode_code_ok_for_base_p): Ditto.
	(lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
	(avr_option_override): Initialize them.
	(output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
	variables.
	(avr_pgm_segment): New static function.
	(avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
	(avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
	(output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
	avr_out_lpm to handle loads from progmem.
	(avr_load_libgcc_p): New static function.
	(avr_progmem_p): Test if decl is in flash.
	(avr_pgm_pointer_const_p): New static function.
	(avr_nonconst_pointer_addrspace): New static function.
	(avr_pgm_check_var_decl): New static function.
	(avr_insert_attributes): Use it.  Change error message to report
	cause (progmem or address space) when code wants to write to flash.
	(avr_section_type_flags): Unset section flag SECTION_BSS for
	data in progmem.
	* config/avr/predicates.md (nop_general_operand): New predicate.
	(nox_general_operand): New predicate.
	* config/avr/avr.md (LPM_REGNO): New define_constant.
	(load<mode>_libgcc): New expander.
	(*load.<mode>.libgcc): New insn.
	(mov<mode>): Handle loads from non-generic AS.
	(movmemhi): Ditto.  Propagate address space information to newly
	created MEM.
	(movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
	to nox_general_operand.
	(ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to nop_general_operand.
	(ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
	(lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
	(split-lpmx): New split.
	(*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
	*lshrhi3_const, *lshrsi3_const): Indent, unquote C.

libgcc/
	PR target/49868
	* config/avr/t-avr (LIB1ASMFUNCS): Add _load_3,  _load_4.
	* config/avr/lib1funcs.S (__load_3, __load_4, __xload_2): New functions.

From-SVN: r181378
2011-11-15 09:01:46 +00:00
Maxim Kuvyrkov
d2d668fbbb ipa-cp.c (ipa_value_from_jfunc): Make global.
* ipa-cp.c (ipa_value_from_jfunc): Make global.
	(ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
	(get_indirect_edge_target): Rename, make global.
	(devirtualization_time_bonus, estimate_local_effects,)
	(ipcp_discover_new_direct_edges): Update.
	* ipa-inline-analysis.c (evaluate_conditions_for_edge):
	Generalize to also handle types.  Rename to ...
	(evaluate_properties_for_edge): Use instead of
	evaluate_conditions_for_edge.
	(estimate_edge_devirt_benefit): New function.
	(estimate_calls_size_and_time): Use it.
	(estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
	(inline_merge_summary):	Update.
	(do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
	parameter information at the call site and pass it on to subroutines.
	* tree-inline.c (estimate_num_insns): Distinguish between direct and
	indirect calls.
	(init_inline_once): Set size and time costs or indirect calls.
	* tree-inline.h (eni_weights): Add indirect_call_cost.

From-SVN: r181377
2011-11-15 03:46:08 +00:00
GCC Administrator
e3790e8a9f Daily bump.
From-SVN: r181376
2011-11-15 00:18:38 +00:00
Tom de Vries
643400b8c9 re PR tree-optimization/51005 (-ftree-tail-merge slows down compilation of 20001226-1.c)
2011-11-15  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/51005
	* tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
	mark_basic_block_deleted.
	(update_worklist): Inline purge_bbs.
	(purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
	(delete_block_update_dominator_info): Remove.
	(replace_block_by): Remove update_vops parameter.  Partially evaluate
	for update_vops == false.
	(apply_clusters): Remove update_vops parameter.  Remove update_vops
	argument in replace_block_by call.
	(update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
	(tail_merge_optimize): Remove update_vops argument to apply_clusters.
	Remove call to purge_bbs.  Add calls to calculate_dominance_info and
	free_dominance_info.  Add MAY_HAVE_DEBUG_STMTS	before calling
	update_debug_stmts.  Mark vop var for renaming, if necessary.

From-SVN: r181372
2011-11-15 00:12:45 +00:00
Bernd Schmidt
894a84b5ed re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)
PR rtl-optimization/51051
	* cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
	move would cause fallthrough into the exit block.

From-SVN: r181371
2011-11-14 23:31:13 +00:00
Richard Henderson
2747a04662 rs6000: Rewrite sync patterns for atomic; expand early.
The conversion of the __sync post-reload splitters was half
complete.  Since there are nearly no restrictions on what may
appear between LL and SC, expand all the patterns immediatly.
This allows significantly easier code generation for subword
atomic operations.

From-SVN: r181370
2011-11-14 14:59:02 -08:00
Uros Bizjak
674a358147 sse.md (round<mode>2): Use register_operand for operand 1 predicate.
* config/i386/sse.md (round<mode>2): Use register_operand for
	operand 1 predicate.
	(round<mode>2_sfix): Ditto.
	(round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.

From-SVN: r181369
2011-11-14 23:27:13 +01:00
Nathan Sidwell
8c121ccb53 * gcov.c (canonicalize_name): Protect use of S_ISLNK.
From-SVN: r181367
2011-11-14 21:44:01 +00:00
Torvald Riegel
2f5623b20c Trivial: add cleanup-tree-dump in testcase, fix typo in comment.
gcc/testsuite:
	* g++.dg/tm/template-1.C: Add cleanup-tree-dump. Fix typo in comment.

From-SVN: r181366
2011-11-14 21:06:15 +00:00
Jan Hubicka
de3c89d5ba i386.c (core cost model): Correct pasto.
gcc:

2011-11-14  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (core cost model): Correct pasto.

From-SVN: r181365
2011-11-14 21:05:12 +00:00
Uros Bizjak
865d6730c2 avx-recip-vec.c: New test.
* gcc.target/i386/avx-recip-vec.c: New test.
	* gcc.target/i386/avx-lrintf-vec.c: Ditto.
	* gcc.target/i386/avx-lrint-vec.c: Ditto.
	* gcc.target/i386/avx-ceilf-vec.c: Include sse4_1-ceilf-vec.c.
	* gcc.target/i386/avx-ceil-vec.c: Include sse4_1-ceil-vec.c.
	* gcc.target/i386/avx-floorf-vec.c: Include sse4_1-floorf-vec.c.
	* gcc.target/i386/avx-floor-vec.c: Include sse4_1-floor-vec.c.
	* gcc.target/i386/avx-rintf-vec.c: Include sse4_1-rintf-vec.c.
	* gcc.target/i386/avx-rint-vec.c: Include sse4_1-rint-vec.c.
	* gcc.target/i386/avx-roundf-vec.c: Include sse4_1-roundf-vec.c.
	* gcc.target/i386/avx-round-vec.c: Include sse4_1-round-vec.c.
	* gcc.target/i386/avx-truncf-vec.c: Include sse4_1-truncf-vec.c.
	* gcc.target/i386/avx-trunc-vec.c: Include sse4_1-trunc-vec.c.
	* gcc.target/i386/avx-copysignf-vec.c: Include sse-copysignf-vec.c.
	* gcc.target/i386/avx-copysign-vec.c: Include sse2-copysign-vec.c.

From-SVN: r181364
2011-11-14 21:25:14 +01:00
Ed Smith-Rowland
d2027d2a83 re PR c++/51107 ([C++11] Accepts invalid literal operator with void argument list.)
PR c++/51107
	* typeck.c (check_literal_operator_args): Add processing_specialization
	to check for void template fn. Test for exact arity for non-template fn.

From-SVN: r181363
2011-11-14 15:05:12 -05:00
Uros Bizjak
eab880cf62 sse.md (round<mode>2_sfix): New expander.
* config/i386/sse.md (round<mode>2_sfix): New expander.
	(round<mode>2_vec_pack_sfix): Ditto.
	(<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
	(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
	* config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
	V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
	V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
	* config/i386/i386.c (ix86_builtins): Add
	IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
	IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
	(bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
	__builtin_ia32_roundpd_az_vec_pack_sfix{,256},
	__builtin_ia32_{floorps,ceilps}_sfix{,256}and
	__builtin_ia32_roundps_az_sfix{,256} descriptions.
	(ix86_expand_sse_round_vec_pack_sfix): New.
	(ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
	V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
	V8SI_FTYPE_V4DF_V4DF_ROUND types.  Check last argument of
	CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
	CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
	(ix86_builtin_vectorized_function): Handle
	BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
	BUILT_IN_{I,L,LL}ROUND{,F}

testsuite/ChangeLog:

	* gcc.target/i386/sse4_1-floor-sfix-vec.c: New test.
	* gcc.target/i386/sse4_1-floorf-sfix-vec.c: Ditto.
	* gcc.target/i386/avx-floor-sfix-vec.c: Ditto.
	* gcc.target/i386/avx-floorf-sfix-vec.c: Ditto.
	* gcc.target/i386/sse4_1-ceil-sfix-vec.c: Ditto.
	* gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Ditto.
	* gcc.target/i386/avx-ceil-sfix-vec.c: Ditto.
	* gcc.target/i386/avx-ceilf-sfix-vec.c: Ditto.
	* gcc.target/i386/sse4_1-round-sfix-vec.c: Ditto.
	* gcc.target/i386/sse4_1-roundf-sfix-vec.c: Ditto.
	* gcc.target/i386/avx-round-sfix-vec.c: Ditto.
	* gcc.target/i386/avx-roundf-sfix-vec.c: Ditto.

From-SVN: r181361
2011-11-14 20:36:33 +01:00
Fabien Chêne
557831a91d re PR c++/6936 (member "using" binds wrong)
PR c++/6936
	PR c++/25994
	PR c++/26256
	PR c++/30195
	* search.c (lookup_field_1): Look through USING_DECL.
	(lookup_field_r): Call lookup_fnfields_slot instead of
	lookup_fnfields_1.
	* semantics.c (finish_member_declaration): Remove the check that
	prevents USING_DECLs from being verified by
	pushdecl_class_level. Call add_method for using declarations that
	designates functions if the using declaration is in a template
	class. Set DECL_IGNORED_P on class-scope using declarations.
	* typeck.c (build_class_member_access_expr): Handle USING_DECLs.
	* class.c (check_field_decls): Keep using declarations.
	(add_method): Remove two diagnostics about conflicting using
	declarations.
	* parser.c (cp_parser_nonclass_name): Handle USING_DECLs.
	* decl.c (start_enum): Call xref_tag whenever possible.
	* cp-tree.h (strip_using_decl): Declare, and reident the previous
	function.
	* name-lookup.c (strip_using_decl): New function.
	(supplement_binding_1): Call strip_using_decl on decl and
	bval. Perform most of the checks with USING_DECLs stripped.  Also
	check that the target decl and the target bval does not refer to
	the same declaration. Allow pushing an enum multiple times in a
	template class. Adjustment to diagnose using redeclarations. Call
	diagnose_name_conflict.
	(push_class_level_binding): Call strip_using_decl on decl and
	bval. Perform most of the checks with USING_DECLs stripped. Return
	true if both decl and bval refer to USING_DECLs and are dependent.
	(diagnose_name_conflict): New function.

From-SVN: r181359
2011-11-14 12:55:57 -05:00
Jan Hubicka
ac99ebf5ae re PR middle-end/50598 (Undefined symbols: "___emutls_v.*", ... on *-apple-darwin*)
PR middle-end/50598
	* cgraph.h (varpool_externally_visible_p): Declare.
	(varpool_add_new_variable): Declare.
	* tree-emultls.c (get_emutls_init_templ_addr,
	new_emutls_decl): Use varpool_add_new_variable.
	* ipa.c (varpool_externally_visible_p): Export.
	* varpool.c (varpool_add_new_variable): New function.

From-SVN: r181358
2011-11-14 17:32:47 +00:00
Zolotukhin Michael
38877e9851 sw-1.c: Force rep;movsb.
* gcc.target/i386/sw-1.c: Force rep;movsb.

        * config/i386/i386.h (processor_costs): Add second dimension to
        stringop_algs array.
        * config/i386/i386.c (cost models): Initialize second dimension of
        stringop_algs arrays.
	(core_cost): New costs based on generic64 costs with updated stringop
	values.
        (promote_duplicated_reg): Add support for vector modes, add
        declaration.
        (promote_duplicated_reg_to_size): Likewise.
	(processor_target): Set core costs for core variants.
        (expand_set_or_movmem_via_loop_with_iter): New function.
        (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
        different loops, produced by this function.
        (emit_strset): New function.
        (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
        use SSE-moves where possible.
        (expand_setmem_epilogue): Likewise.
        (expand_movmem_prologue): Likewise for prologue.
        (expand_setmem_prologue): Likewise.
        (expand_constant_movmem_prologue): Likewise.
        (expand_constant_setmem_prologue): Likewise.
        (decide_alg): Add new argument align_unknown.  Fix algorithm of
        strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
        (decide_alignment): Update desired alignment according to chosen move
        mode.
        (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
        (ix86_expand_setmem): Likewise.
        (ix86_slow_unaligned_access): Implementation of new hook
        slow_unaligned_access.
        * config/i386/i386.md (strset): Enable half-SSE moves.
        * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
        (vec_dupv2di): Add expand for vec_dupv2di.

Co-Authored-By: Jan Hubicka <jh@suse.cz>

From-SVN: r181357
2011-11-14 17:28:11 +00:00
Dimitrios Apostolou
f8acdd3c52 re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)
PR bootstrap/51094
	PR middle-end/51116
	* config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
	* varasm.c (default_elf_internal_label): Remove.

From-SVN: r181355
2011-11-14 11:55:56 -05:00
Kai Tietz
fe860eb519 gcov.c (generate_results): Add missing semicolon and correct indent.
* gcov.c (generate_results): Add missing semicolon and
        correct indent.

From-SVN: r181353
2011-11-14 17:38:23 +01:00
Iain Sandoe
a163acfa5d re PR testsuite/51059 (FAIL: gcc.misc-tests/gcov-14.c (test for excess errors) on *-apple-darwin*)
gcc/testsuite:

	PR testsuite/51059
	* gcc.misc-tests/gcov-14.c (dg-options): Adjust to use
	dg-additional-options.

From-SVN: r181350
2011-11-14 11:53:33 +00:00
Tobias Burnus
107a9bc92c re PR fortran/51073 (_gfortran_caf_register incorrectly assumes malloc(0) returns non-NULL)
2011-11-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51073
        * trans-decl.c (generate_coarray_sym_init): Handle zero-sized
        * arrays.

From-SVN: r181348
2011-11-14 09:15:09 +01:00
Ira Rosen
df11cc78c2 re PR bootstrap/51112 (LTO bootstrap failed with bootstrap-profiled)
PR bootstrap/51112
        * tree-vect-stmts.c (vectorizable_condition): Initialize
        comp_vectype.

From-SVN: r181347
2011-11-14 06:41:09 +00:00
Mingjie Xing
51c0279887 Fix a cross reference.
From-SVN: r181346
2011-11-14 05:53:18 +00:00
GCC Administrator
a56125be7a Daily bump.
From-SVN: r181345
2011-11-14 00:18:34 +00:00
Oleg Endo
f36348b34b re PR target/50694 (SH Target: SH2A little endian does not actually work)
PR target/50694
	* config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
	New macros.
	(DRIVER_SELF_SPECS): Use new macros to filter out
	unsupported options taking the default configuration into
	account.
	* gcc.target/sh/pr21255-2-ml.c: Skip if -mb or -m5* is
	specified.  Remove redundant runtime checks.
	* gcc.target/sh/20080410-1.c: Skip if -mb is specified.
	Allow for other than -m4.  Fix typos in comments.

From-SVN: r181340
2011-11-13 23:00:10 +00:00
Jonathan Wakely
d559a95c8f install.texi (Specific): Fix anchor for x86_64-*-solaris2.1[0-9]*.
* doc/install.texi (Specific): Fix anchor for
	x86_64-*-solaris2.1[0-9]*.

From-SVN: r181338
2011-11-13 16:39:22 +00:00
Nathan Sidwell
1bec9caacb gcov.c (source_prefix, [...]): New globals.
* gcov.c (source_prefix, source_length): New globals.
	(flag_relative_only): Likewise.
	(print_usage, options, process_args): Update.
	(generate_results): Use coverage.name, check
	flag_relative_only. Adjust messages.
	(find_source): Check source_prefix.
	(output_lines): Use coverage.name, adjust messages.
	* doc/gcov.texi (Invoking Gcov): Document new options.

From-SVN: r181335
2011-11-13 10:26:23 +00:00
Jason Merrill
2c6f792709 re PR c++/986 (g++ misses warning for reference on temporary that invokes undefined behaviour)
PR c++/986
	* call.c (set_up_extended_ref_temp): Warn about references
	bound to non-static reference members.
	* init.c (perform_member_init): Pass in the member.

From-SVN: r181334
2011-11-13 00:09:36 -05:00
Jason Merrill
d0ad58f94e re PR c++/51060 (Temporary object stack space is not re-used)
PR c++/51060
	* gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
	(gimplify_modify_expr): Don't try to simplify it.
	* cp/cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone.

From-SVN: r181332
2011-11-12 19:44:39 -05:00
GCC Administrator
f2628dce24 Daily bump.
From-SVN: r181331
2011-11-13 00:18:44 +00:00
Dimitrios Apostolou
c9febe1567 re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)
PR bootstrap/51094
	* config/elfos.h (STRING_ASM_OP): Define.
	* varasm.c (default_elf_asm_output_limited_string): Use it.

From-SVN: r181327
2011-11-12 16:40:07 -05:00
Dimitrios Apostolou
123cd4632d re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)
PR bootstrap/51094
	* gcc/configure.ac: Check for stpcpy declaration.
	* system.h: Declare it if not.
	* config.in, configure: Regenerate.

From-SVN: r181326
2011-11-12 16:39:59 -05:00
Richard Henderson
17fd74dde3 rs6000: fix*_trunc insns use nonimmediate_operand
* config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
        nonimmediate_operand for the destination.
        (fixuns_trunc<SFDF>si2_stfiwx): Likewise.

From-SVN: r181324
2011-11-12 09:19:39 -08:00
Richard Henderson
f0409b19f5 builtins.c (expand_builtin_compare_and_swap): If target is const0, don't pass the target to expand_atomic_compare_and_swap.
* builtins.c (expand_builtin_compare_and_swap): If target is const0,
        don't pass the target to expand_atomic_compare_and_swap.
        (expand_builtin_atomic_compare_exchange): Likewise.

From-SVN: r181323
2011-11-12 09:17:54 -08:00
Richard Henderson
dab37c689e sh-linux: Install __sync libfuncs.
* config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
        * config/sh/sh.c (sh_init_sync_libfuncs): New.

From-SVN: r181322
2011-11-12 09:17:45 -08:00
Richard Henderson
33a55f2919 hppa: Install __sync libfuncs for linux.
* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
        * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
        * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.

From-SVN: r181320
2011-11-12 07:39:44 -08:00
Iain Sandoe
5f41422fc7 Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link s-oscons.ads.
ada:

	* gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link
	s-oscons.ads.
	(OSCONS_CPP, OSCONS_EXTRACT): New.
	(./bldtools/oscons/xoscons): New Target.
	($(RTSDIR)/s-oscons.ads): New Target.
	(gnatlib): Depend on  $(RTSDIR)/s-oscons.ads.
	* gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency.
	* Make-generated.in: Remove machinery to generate xoscons and
	ada/s-oscons.ads.

libada:

	Makefile.in: Change dependency on oscons to depend on the generator
	tool.

From-SVN: r181319
2011-11-12 15:06:18 +00:00
Uros Bizjak
0eb5d9c427 gcc-simulate-thread.exp (simulate-thread): Do not run on alpha*-*-linux* targets.
* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
	alpha*-*-linux* targets.

From-SVN: r181318
2011-11-12 15:35:31 +01:00
Iain Sandoe
173a8c50f1 re PR testsuite/51059 (FAIL: gcc.misc-tests/gcov-14.c (test for excess errors) on *-apple-darwin*)
gcc/testsuite:

	PR testsuite/51059
	* gcc.misc-tests/gcov-14.c (dg-options): Force flat namespace for
	Darwin targets and allow external symbols to be undefined.

From-SVN: r181317
2011-11-12 14:30:45 +00:00
Iain Sandoe
220c688a77 re PR target/45233 (FAIL: gcc.c-torture/compile/pr44707.c)
gcc:

	PR target/45233
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
	Only expand a symbol ref. into an access when the entity is defined
	in the TU.

From-SVN: r181315
2011-11-12 14:12:26 +00:00