Commit Graph

94732 Commits

Author SHA1 Message Date
Thomas Koenig
16bff92192 [multiple changes]
2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/34670
	PR libfortran/36874
	* Makefile.am:  Add bounds.c
	* libgfortran.h (bounds_equal_extents):  Add prototype.
	(bounds_iforeach_return):  Likewise.
	(bounds_ifunction_return):  Likewise.
	(bounds_reduced_extents):  Likewise.
	* runtime/bounds.c:  New file.
	(bounds_iforeach_return):  New function; correct typo in
	error message.
	(bounds_ifunction_return):  New function.
	(bounds_equal_extents):  New function.
	(bounds_reduced_extents):  Likewise.
	* intrinsics/cshift0.c (cshift0):  Use new functions
	for bounds checking.
	* intrinsics/eoshift0.c (eoshift0):  Likewise.
	* intrinsics/eoshift2.c (eoshift2):  Likewise.
	* m4/iforeach.m4:  Likewise.
	* m4/eoshift1.m4:  Likewise.
	* m4/eoshift3.m4:  Likewise.
	* m4/cshift1.m4:  Likewise.
	* m4/ifunction.m4:  Likewise.
	* Makefile.in:  Regenerated.
	* generated/cshift1_16.c: Regenerated.
	* generated/cshift1_4.c: Regenerated.
	* generated/cshift1_8.c: Regenerated.
	* generated/eoshift1_16.c: Regenerated.
	* generated/eoshift1_4.c: Regenerated.
	* generated/eoshift1_8.c: Regenerated.
	* generated/eoshift3_16.c: Regenerated.
	* generated/eoshift3_4.c: Regenerated.
	* generated/eoshift3_8.c: Regenerated.
	* generated/maxloc0_16_i1.c: Regenerated.
	* generated/maxloc0_16_i16.c: Regenerated.
	* generated/maxloc0_16_i2.c: Regenerated.
	* generated/maxloc0_16_i4.c: Regenerated.
	* generated/maxloc0_16_i8.c: Regenerated.
	* generated/maxloc0_16_r10.c: Regenerated.
	* generated/maxloc0_16_r16.c: Regenerated.
	* generated/maxloc0_16_r4.c: Regenerated.
	* generated/maxloc0_16_r8.c: Regenerated.
	* generated/maxloc0_4_i1.c: Regenerated.
	* generated/maxloc0_4_i16.c: Regenerated.
	* generated/maxloc0_4_i2.c: Regenerated.
	* generated/maxloc0_4_i4.c: Regenerated.
	* generated/maxloc0_4_i8.c: Regenerated.
	* generated/maxloc0_4_r10.c: Regenerated.
	* generated/maxloc0_4_r16.c: Regenerated.
	* generated/maxloc0_4_r4.c: Regenerated.
	* generated/maxloc0_4_r8.c: Regenerated.
	* generated/maxloc0_8_i1.c: Regenerated.
	* generated/maxloc0_8_i16.c: Regenerated.
	* generated/maxloc0_8_i2.c: Regenerated.
	* generated/maxloc0_8_i4.c: Regenerated.
	* generated/maxloc0_8_i8.c: Regenerated.
	* generated/maxloc0_8_r10.c: Regenerated.
	* generated/maxloc0_8_r16.c: Regenerated.
	* generated/maxloc0_8_r4.c: Regenerated.
	* generated/maxloc0_8_r8.c: Regenerated.
	* generated/maxloc1_16_i1.c: Regenerated.
	* generated/maxloc1_16_i16.c: Regenerated.
	* generated/maxloc1_16_i2.c: Regenerated.
	* generated/maxloc1_16_i4.c: Regenerated.
	* generated/maxloc1_16_i8.c: Regenerated.
	* generated/maxloc1_16_r10.c: Regenerated.
	* generated/maxloc1_16_r16.c: Regenerated.
	* generated/maxloc1_16_r4.c: Regenerated.
	* generated/maxloc1_16_r8.c: Regenerated.
	* generated/maxloc1_4_i1.c: Regenerated.
	* generated/maxloc1_4_i16.c: Regenerated.
	* generated/maxloc1_4_i2.c: Regenerated.
	* generated/maxloc1_4_i4.c: Regenerated.
	* generated/maxloc1_4_i8.c: Regenerated.
	* generated/maxloc1_4_r10.c: Regenerated.
	* generated/maxloc1_4_r16.c: Regenerated.
	* generated/maxloc1_4_r4.c: Regenerated.
	* generated/maxloc1_4_r8.c: Regenerated.
	* generated/maxloc1_8_i1.c: Regenerated.
	* generated/maxloc1_8_i16.c: Regenerated.
	* generated/maxloc1_8_i2.c: Regenerated.
	* generated/maxloc1_8_i4.c: Regenerated.
	* generated/maxloc1_8_i8.c: Regenerated.
	* generated/maxloc1_8_r10.c: Regenerated.
	* generated/maxloc1_8_r16.c: Regenerated.
	* generated/maxloc1_8_r4.c: Regenerated.
	* generated/maxloc1_8_r8.c: Regenerated.
	* generated/maxval_i1.c: Regenerated.
	* generated/maxval_i16.c: Regenerated.
	* generated/maxval_i2.c: Regenerated.
	* generated/maxval_i4.c: Regenerated.
	* generated/maxval_i8.c: Regenerated.
	* generated/maxval_r10.c: Regenerated.
	* generated/maxval_r16.c: Regenerated.
	* generated/maxval_r4.c: Regenerated.
	* generated/maxval_r8.c: Regenerated.
	* generated/minloc0_16_i1.c: Regenerated.
	* generated/minloc0_16_i16.c: Regenerated.
	* generated/minloc0_16_i2.c: Regenerated.
	* generated/minloc0_16_i4.c: Regenerated.
	* generated/minloc0_16_i8.c: Regenerated.
	* generated/minloc0_16_r10.c: Regenerated.
	* generated/minloc0_16_r16.c: Regenerated.
	* generated/minloc0_16_r4.c: Regenerated.
	* generated/minloc0_16_r8.c: Regenerated.
	* generated/minloc0_4_i1.c: Regenerated.
	* generated/minloc0_4_i16.c: Regenerated.
	* generated/minloc0_4_i2.c: Regenerated.
	* generated/minloc0_4_i4.c: Regenerated.
	* generated/minloc0_4_i8.c: Regenerated.
	* generated/minloc0_4_r10.c: Regenerated.
	* generated/minloc0_4_r16.c: Regenerated.
	* generated/minloc0_4_r4.c: Regenerated.
	* generated/minloc0_4_r8.c: Regenerated.
	* generated/minloc0_8_i1.c: Regenerated.
	* generated/minloc0_8_i16.c: Regenerated.
	* generated/minloc0_8_i2.c: Regenerated.
	* generated/minloc0_8_i4.c: Regenerated.
	* generated/minloc0_8_i8.c: Regenerated.
	* generated/minloc0_8_r10.c: Regenerated.
	* generated/minloc0_8_r16.c: Regenerated.
	* generated/minloc0_8_r4.c: Regenerated.
	* generated/minloc0_8_r8.c: Regenerated.
	* generated/minloc1_16_i1.c: Regenerated.
	* generated/minloc1_16_i16.c: Regenerated.
	* generated/minloc1_16_i2.c: Regenerated.
	* generated/minloc1_16_i4.c: Regenerated.
	* generated/minloc1_16_i8.c: Regenerated.
	* generated/minloc1_16_r10.c: Regenerated.
	* generated/minloc1_16_r16.c: Regenerated.
	* generated/minloc1_16_r4.c: Regenerated.
	* generated/minloc1_16_r8.c: Regenerated.
	* generated/minloc1_4_i1.c: Regenerated.
	* generated/minloc1_4_i16.c: Regenerated.
	* generated/minloc1_4_i2.c: Regenerated.
	* generated/minloc1_4_i4.c: Regenerated.
	* generated/minloc1_4_i8.c: Regenerated.
	* generated/minloc1_4_r10.c: Regenerated.
	* generated/minloc1_4_r16.c: Regenerated.
	* generated/minloc1_4_r4.c: Regenerated.
	* generated/minloc1_4_r8.c: Regenerated.
	* generated/minloc1_8_i1.c: Regenerated.
	* generated/minloc1_8_i16.c: Regenerated.
	* generated/minloc1_8_i2.c: Regenerated.
	* generated/minloc1_8_i4.c: Regenerated.
	* generated/minloc1_8_i8.c: Regenerated.
	* generated/minloc1_8_r10.c: Regenerated.
	* generated/minloc1_8_r16.c: Regenerated.
	* generated/minloc1_8_r4.c: Regenerated.
	* generated/minloc1_8_r8.c: Regenerated.
	* generated/minval_i1.c: Regenerated.
	* generated/minval_i16.c: Regenerated.
	* generated/minval_i2.c: Regenerated.
	* generated/minval_i4.c: Regenerated.
	* generated/minval_i8.c: Regenerated.
	* generated/minval_r10.c: Regenerated.
	* generated/minval_r16.c: Regenerated.
	* generated/minval_r4.c: Regenerated.
	* generated/minval_r8.c: Regenerated.
	* generated/product_c10.c: Regenerated.
	* generated/product_c16.c: Regenerated.
	* generated/product_c4.c: Regenerated.
	* generated/product_c8.c: Regenerated.
	* generated/product_i1.c: Regenerated.
	* generated/product_i16.c: Regenerated.
	* generated/product_i2.c: Regenerated.
	* generated/product_i4.c: Regenerated.
	* generated/product_i8.c: Regenerated.
	* generated/product_r10.c: Regenerated.
	* generated/product_r16.c: Regenerated.
	* generated/product_r4.c: Regenerated.
	* generated/product_r8.c: Regenerated.
	* generated/sum_c10.c: Regenerated.
	* generated/sum_c16.c: Regenerated.
	* generated/sum_c4.c: Regenerated.
	* generated/sum_c8.c: Regenerated.
	* generated/sum_i1.c: Regenerated.
	* generated/sum_i16.c: Regenerated.
	* generated/sum_i2.c: Regenerated.
	* generated/sum_i4.c: Regenerated.
	* generated/sum_i8.c: Regenerated.
	* generated/sum_r10.c: Regenerated.
	* generated/sum_r16.c: Regenerated.
	* generated/sum_r4.c: Regenerated.
	* generated/sum_r8.c: Regenerated.

2009-07-19   Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/34670
	PR libfortran/36874
	* gfortran.dg/cshift_bounds_1.f90:  New test.
	* gfortran.dg/cshift_bounds_2.f90:  New test.
	* gfortran.dg/cshift_bounds_3.f90:  New test.
	* gfortran.dg/cshift_bounds_4.f90:  New test.
	* gfortran.dg/eoshift_bounds_1.f90:  New test.
	* gfortran.dg/maxloc_bounds_4.f90:  Correct typo in error message.
	* gfortran.dg/maxloc_bounds_5.f90:  Correct typo in error message.
	* gfortran.dg/maxloc_bounds_7.f90:  Correct typo in error message.

From-SVN: r149792
2009-07-19 15:07:21 +00:00
Jan Hubicka
a915ab0000 re PR tree-optimization/40676 (internal compiler error: verify_ssa error: definition in block 5 does not dominate use in block 7)
PR tree-optimization/40676
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
	virtual PHIs in empty BBs.

	* gcc.c-torture/compile/pr40676.c: New testcase.

From-SVN: r149789
2009-07-19 10:27:07 +00:00
GCC Administrator
9d43fad9a8 Daily bump.
From-SVN: r149785
2009-07-19 00:16:50 +00:00
Paolo Carlini
af90c8c9ae re PR libstdc++/40712 (locale(const locale&, const char*, locale::category) can create broken locale)
2009-07-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40712
	* config/locale/gnu/numeric_members.cc (numpunct<>::
	_M_initialize_numpunct): Dynamically allocate _M_data->_M_grouping
	and copy the langinfo data into it.
	(numpunct<>::~numpunct): Free the allocated memory.
	* config/locale/gnu/monetary_members.cc (moneypunct<>::
	_M_initialize_moneypunct): Dynamically allocate _M_data->_M_grouping,
	_M_data->_M_positive_sign, _M_data->_M_negative_sign,
	_M_data->_M_curr_symbol.
	(moneypunct<>::~moneypunct): Free the allocated memory.
	* testsuite/22_locale/moneypunct/40712.cc: New.

	* include/bits/locale_facets.tcc (__numpunct_cache<>::_M_cache):
	Do not leak memory if new throws.
	* include/bits/locale_facets_nonio.tcc
	(__moneypunct_cache<>::_M_cache): Likewise.

From-SVN: r149782
2009-07-18 22:58:10 +00:00
Adam Nemet
827f407940 combine.c (make_compound_operation): If force_to_mode re-expanded the compound use gen_lowpart instead to convert to...
* combine.c (make_compound_operation) <SUBREG>: If force_to_mode
	re-expanded the compound use gen_lowpart instead to convert to the
	desired mode.

testsuite/
	* gcc.target/mips/ext-2.c: New test.

From-SVN: r149781
2009-07-18 21:55:40 +00:00
Adam Nemet
f3ce108897 combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and OUTER_CONST arguments.
* combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
	OUTER_CONST arguments.
	<LSHIFTRT>: Use them to allow widening if the bits shifted in from
	the new wider mode will be masked off.
	(simplify_shift_const_1): Adjust calls to try_widen_shift_mode.

From-SVN: r149780
2009-07-18 21:52:48 +00:00
Adam Nemet
3e63dd3a36 combine.c (try_widen_shift_mode): Allow widening if the high-order bits are zero.
* combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
	high-order bits are zero.

From-SVN: r149779
2009-07-18 21:48:19 +00:00
Adam Nemet
b641d7fca3 combine.c (simplify_shift_const_1): Split code to determine shift_mode into ...
* combine.c (simplify_shift_const_1): Split code to determine
	shift_mode into ...
	(try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
	new bits shifted in are identical to the old sign bit.

testsuite/
	* gcc.target/mips/octeon-exts-7.c: New test.
	* gcc.target/mips/octeon-exts-2.c: Revert previous change.
	* gcc.target/mips/octeon-exts-5.c: Likewise.

From-SVN: r149778
2009-07-18 21:46:01 +00:00
Richard Guenther
b95d6ac9ca re PR testsuite/40798 (Revision 149750 failed gcc.dg/tree-ssa/loop-2.c)
2009-07-18  Richard Guenther  <rguenther@suse.de>

	PR testsuite/40798
	* gcc.dg/tree-ssa/loop-2.c: Tighten pattern.

From-SVN: r149774
2009-07-18 15:29:21 +00:00
Arnaud Charlet
1f55686aee Fix last entry.
From-SVN: r149772
2009-07-18 14:26:41 +02:00
Richard Guenther
33922890f6 re PR c/40787 (ICE: verify_gimple failed in gcc.dg/pr35899.c)
2009-07-18  Richard Guenther  <rguenther@suse.de>

	PR c/40787
	* gimplify.c (gimplify_call_expr): Reject code using results from
	functions returning void.

	* gcc.dg/pr35899.c: Adjust.

From-SVN: r149770
2009-07-18 11:16:07 +00:00
Richard Sandiford
1d4479957b md.texi: Document the new PowerPC "es" constraint.
gcc/
	* doc/md.texi: Document the new PowerPC "es" constraint.
	Document that "m" can include automodified addresses on this target,
	and explain how %U must be used.  Extend the "Q" and "Z" documentation
	to suggest "es" as well as "m".
	* config/rs6000/constraints.md (es): New memory constraint.
	(Q, Z): Update strings to match new documentation.

gcc/testsuite/
	* gcc.target/powerpc/asm-es-1.c: New test.
	* gcc.target/powerpc/asm-es-2.c: Likewise.

From-SVN: r149766
2009-07-18 07:52:53 +00:00
Richard Sandiford
406d1650fb rs6000.c (rs6000_mode_dependent_address): Allow any offset from virtual_stack_vars_rtx and arg_pointer_rtx.
gcc/
	* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
	offset from virtual_stack_vars_rtx and arg_pointer_rtx.
	* config/rs6000/predicates.md (volatile_mem_operand): Use
	offsettable_nonstrict_memref_p.
	* config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
	(*floatunssidf2_internal): Likewise.
	(*fix_truncdfsi2_internal): Likewise.
	(*fix_trunctfsi2_internal): Likewise.

From-SVN: r149765
2009-07-18 07:51:19 +00:00
Jerry Quinn
f1bf410cad directives.c (do_linemarker, do_line): Use CPP_STRING for ignored enum value.
2009-07-17  Jerry Quinn  <jlquinn@optonline.net>

	* directives.c (do_linemarker, do_line): Use CPP_STRING for
	ignored enum value.
	* files.c (find_file_in_dir): Add cast from void* to char*.
	* symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
	* Makefile.in: (WARN_CFLAGS): Use general and C-specific
	warnings.
	(CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
	ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
	COMPILER_FLAGS): New.
	(DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
	(COMPILE.base): Use COMPILER instead of CC.  Use COMPILER_FLAGS
	instead of ALL_CFLAGS.
	* configure.ac: Invoke AC_PROG_CXX.  Separate C-specific warnings
	from other warnings.  Add -Wc++-compat to C-specific warnings.
	Check for --enable-build-with-cxx.  Set and substitute
	ENABLE_BUILD_WITH_CXX.  Invoke ZW_PROG_COMPILER_DEPENDENCIES
	according to ENABLE_BUILD_WITH_CXX.  Invoke AC_LANG before
	AC_CHECK_HEADERS.
	* configure: Rebuild.
	* include/cpp-id-data.h: Remove extern "C".
	* include/line-map.h: Likewise.
	* include/mkdeps.h: Likewise.
	* include/symtab.h: Likewise.
	* internal.h: Likewise.

From-SVN: r149763
2009-07-18 03:22:16 +00:00
GCC Administrator
4f5897513d Daily bump.
From-SVN: r149762
2009-07-18 00:16:42 +00:00
Janne Blomqvist
217c4f5393 When finalizing I/O transfer, set current_record to 0 before returning.
PR libfortran/40714

Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>

From-SVN: r149757
2009-07-17 22:40:23 +03:00
Jan Kratochvil
23b1a789fd demangle.h (enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>) (enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>): New.
include
2009-07-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* demangle.h
	(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
	(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>):
	New.
libiberty
2009-07-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cp-demangle.c (d_print_comp <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
	(d_print_comp <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS): New.
	(d_make_comp <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
	(d_make_comp <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS): New.
	(d_demangle_callback): The variable type is now declared as enum.
	Replace parser of _GLOBAL_ symbols by a d_make_comp call.

From-SVN: r149756
2009-07-17 19:09:54 +00:00
Anatoly Sokolov
a0ce0e6e57 avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and atmega32u2 devices.
* config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
	atmega32u2 devices.
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r149755
2009-07-17 22:49:03 +04:00
Richard Guenther
a406865a08 re PR c/40401 (ICE: verify_gimple failed)
2009-07-17  Richard Guenther  <rguenther@suse.de>

	PR c/40401
	* tree-pass.h (pass_diagnose_omp_blocks): Declare.
	(pass_warn_unused_result): Likewise.
	(TODO_set_props): Remove.
	* omp-low.c (diagnose_omp_structured_block_errors): Change to
	run as a pass.
	(pass_diagnose_omp_blocks): Define.
	* c-decl.c (pop_file_scope): Do not finalize the CU here.
	(c_gimple_diagnostics_recursively): Remove.
	(finish_function): Do not call it.
	(c_write_global_declarations): Continue after errors.
	Finalize the CU here.
	* c-gimplify.c (c_genericize): Do not gimplify here.
	* c-common.c (c_warn_unused_result): Move ...
	* tree-cfg.c (do_warn_unused_result): ... here.
	(run_warn_unused_result): New function.
	(gate_warn_unused_result): New function.
	(pass_warn_unused_result): New pass.
	* c-common.h (c_warn_unused_result): Remove.
	* flags.h (flag_warn_unused_result): Declare.
	* c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
	* opts.c (flag_warn_unused_result): Initialize to false.

	* toplev.c (compile_file): Add comment.
	* omp-low.c (create_omp_child_function): Do not register
	the function with the frontend.
	(diagnose_omp_structured_block_errors): Prepare to be
	called as optimization pass.
	(gate_diagnose_omp_blocks): New function.
	(pass_diagnose_omp_blocks): New pass.
	* cgraph.h (cgraph_optimize): Remove.
	(cgraph_analyze_function): Likewise.
	* cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
	* cgraphunit.c (cgraph_lower_function): Lower nested functions
	before their parents here.
	(cgraph_finalize_function): Not here.
	(cgraph_analyze_function): Gimplify functions here.
	(cgraph_finalize_compilation_unit): Continue after errors.
	Optimize the callgraph from here.
	(cgraph_optimize): Make static.
	* langhooks.c (write_global_declarations): Finalize the CU.
	* gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
	(gimplify_function_tree): Assert we gimplify only once.
	Set PROP_gimple_any property.
	* tree-nested.c (gimplify_all_functions): New function.
	(lower_nested_functions): Gimplify all nested functions.
	* gimple.h (diagnose_omp_structured_block_errors): Remove.
	* passes.c (init_optimization_passes): Add pass_warn_unused_result
	and pass_diagnose_omp_blocks after gimplification.  Do not
	set TODO_set_props on all_lowering_passes.
	(execute_one_pass): Do not handle TODO_set_props.
	* Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
	(gimplify.o): Add tree-pass.h dependency.
	* tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
	(copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
	(unsave_r): Likewise.
	* c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
	temporary variable.

	cp/
	* decl.c (finish_function): Do not emit unused result warnings
	from here.
	* cp-objcp-common.h (LANG_HOOKS_POST_GIMPLIFY_PASS): Use
	c_warn_unused_result_pass.
	* semantics.c (expand_or_defer_fn): Adjust assertion about IL status.
	* optimize.c (clone_body): Clone in GENERIC.
	(maybe_clone_body): Do not clear DECL_SAVED_TREE.
	* decl2.c (cp_write_global_declarations): Fix body test.
	Do not call cgraph_optimize.
	* Make-lang.in (optimize.o): Add tree-iterator.h dependency.
	* method.c (use_thunk): Register thunk with
	cgraph_finalize_function.
	* error.c (function_category): Guard access of DECL_LANG_SPECIFIC.

	java/
	* java-gimplify.c (java_genericize): Do not gimplify here.
	But replace all local references.
	(java_gimplify_expr): Do not replace local references here.
	(java_gimplify_modify_expr): Likewise.
	* jcf-parse.c (java_parse_file): Do not finalize the CU or
	optimize the cgraph here.
	* decl.c (java_replace_reference): Make static.
	(java_replace_references): New function.
	(end_java_method): Clear base_decl_map.
	* java-tree.h (java_replace_references): Declare.
	(java_replace_reference): Remove.

	ada/
	* utils.c (end_subprog_body): Revert to pre-tuples state.  Remove
	unused parameter.
	(gnat_gimplify_function): Do not gimplify here.
	Fold into its only caller and remove.
	(gnat_builtin_function): Adjust for end_subprog_body signature change.
	(gnat_write_global_declarations): Also finalize the CU.
	* misc.c (gnat_parse_file): Do not finalize the CU here.
	* trans.c (gigi): Revert to pre-tuples state.
	(Subprogram_Body_to_gnu): Adjust for end_subprog_body signature
	change.
	* gigi.h (end_subprog_body): Remove unused parameter.

	fortran/
	* f95-lang.c (gfc_be_parse_file): Do not finalize the CU here.
	* trans-decl.c (gfc_gimplify_function): Remove.
	(build_entry_thunks): Do not gimplify here.
	(create_main_function): Likewise.
	(gfc_generate_function_code): Likewise.

	* g++.dg/rtti/crash4.C: New testcase.
	* g++.dg/torture/20090706-1.C: Likewise.
	* gcc.dg/redecl-17.c: Likewise.

	* gfortran.dg/missing_optional_dummy_5.f90: Adjust pattern.
	* gcc.dg/declspec-9.c: Expect extra error.
	* gcc.dg/declspec-10.c: Likewise.
	* gcc.dg/declspec-11.c: Likewise.
	* gcc.dg/redecl-10.c: Expect extra warnings.
	* gcc.target/i386/pr39082-1.c: Adjust diagnostic location.
	* gcc.target/i386/pr39545-1.c: Likewise.
	* g++.dg/ext/asm3.C: Expect more errors.
	* g++.dg/gomp/block-1.C: Likewise.
	* g++.dg/gomp/block-2.C: Likewise.
	* g++.dg/gomp/block-3.C: Likewise.
	* g++.dg/gomp/block-5.C: Likewise.
	* g++.old-deja/g++.jason/report.C: Expect extra warnings.
	* g++.dg/warn/unused-result1.C: XFAIL.

From-SVN: r149750
2009-07-17 15:49:34 +00:00
Joseph Myers
e7d5b5b9c4 re PR other/40784 (Revision 149725 caused autoconf warning in libstdc++)
PR other/40784
config:
	* tls.m4 (GCC_CHECK_TLS): Add extra quoting around argument to
	AC_LINK_IFELSE.

libjava:
	* configure: Regenerate.

libstdc++-v3:
	* configure: Regenerate.

From-SVN: r149748
2009-07-17 16:08:36 +01:00
Sandra Loosemore
2e687c2c8e service.texi (Service): Restore previously removed link, which isn't broken after all.
2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/service.texi (Service): Restore previously removed link,
	which isn't broken after all.

From-SVN: r149746
2009-07-17 09:10:12 -04:00
Richard Guenther
7763473eb9 re PR tree-optimization/40321 (internal compiler error: in compute_antic, at tree-ssa-pre.c:2501)
2009-07-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40321
	* tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
	PHI nodes to the maximal set.
	(make_values_for_phi): Add PHI arguments to the maximal set.
	(execute_pre): Dump PHI_GEN and the maximal set.

	* gcc.c-torture/compile/pr40321.c: New testcase.
	* g++.dg/torture/pr40321.C: Likewise.

From-SVN: r149744
2009-07-17 12:44:05 +00:00
Jakub Jelinek
4f93480919 re PR c++/40780 (ICE in gimplify_conversion)
PR c++/40780
	* gimplify.c (gimplify_conversion): Don't change non-conversions into
	VIEW_CONVERT_EXPR.

	* g++.dg/template/ptrmem19.C: New test.

From-SVN: r149740
2009-07-17 12:40:09 +02:00
Kai Tietz
e59be1b119 configure.ac: Add rule for mingw targets to add -DGC_BUILD=1 to cflags.
2009-07-17  Kai Tietz  <kai.tietz@onevision.com>

        * configure.ac: Add rule for mingw targets to add -DGC_BUILD=1 to
        cflags.
        * configure: Regenerated.

From-SVN: r149737
2009-07-17 11:21:25 +02:00
Richard Guenther
182bf21f32 init.c (build_vec_delete_1): Do not set DECL_REGISTER on the temporary pointer.
2009-07-17  Richard Guenther  <rguenther@suse.de>

	* init.c (build_vec_delete_1): Do not set DECL_REGISTER on the
	temporary pointer.

From-SVN: r149736
2009-07-17 09:09:11 +00:00
Sandra Loosemore
63a26b7858 extend.texi (Nested Functions): Replace broken link with textual reference.
2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/extend.texi (Nested Functions): Replace broken link with
	textual reference.
	* doc/service.texi (Service): Remove broken link.

From-SVN: r149734
2009-07-16 22:54:17 -04:00
H.J. Lu
3ac337c3f5 re PR bootstrap/40781 (Revision 149722 failed to bootstrap)
2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/40781
	* builtins.c (expand_builtin_memcmp): Use loc instead of
	EXPR_LOCATION (exp).
	(expand_builtin_strncmp): Likewise.

From-SVN: r149733
2009-07-16 18:03:55 -07:00
GCC Administrator
184d85bdfa Daily bump.
From-SVN: r149731
2009-07-17 00:16:41 +00:00
Benjamin Kosnik
596cf1ccde testsuite_common_types.h (standard_layout): Activate.
2009-07-16  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/util/testsuite_common_types.h (standard_layout): Activate.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Adjust
	line numbers.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.

From-SVN: r149730
2009-07-17 00:16:33 +00:00
Joseph Myers
396b7fa48a tls.m4 (GCC_CHECK_TLS): Also test TLS in a shared library when cross-compiling.
config:
	* tls.m4 (GCC_CHECK_TLS): Also test TLS in a shared library when
	cross-compiling.

libgomp:
	* configure: Regenerate.

libjava:
	* configure: Regenerate.

libmudflap:
	* configure: Regenerate.

libstdc++-v3:
	* configure: Regenerate.

From-SVN: r149725
2009-07-17 00:18:08 +01:00
Aldy Hernandez
db3927fb49 re PR c/40435 (Revision 148442 caused many regressions on trunk)
2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 40435 
	* tree-complex.c, tree-loop-distribution.c,
	tree.c, tree.h, builtins.c, fold-const.c, omp-low.c,
	cgraphunit.c, tree-ssa-ccp.c, tree-ssa-dom.c,
	gimple-low.c, expr.c, tree-ssa-ifcombine.c, c-decl.c,
	stor-layout.c, tree-if-conv.c, c-typeck.c,
	gimplify.c, calls.c, tree-sra.c, tree-mudflap.c,
	tree-ssa-copy.c, tree-ssa-forwprop.c, c-convert.c, c-omp.c,
	varasm.c, tree-inline.c, c-common.c,
	c-common.h, gimple.c, tree-switch-conversion.c, gimple.h,
	tree-cfg.c, c-parser.c, convert.c: Add location
	argument to fold_{unary,binary,ternary}, fold_build[123],
	build_call_expr, build_size_arg, build_fold_addr_expr,
	build_call_array, non_lvalue, size_diffop,
	fold_build1_initializer, fold_build2_initializer,
	fold_build3_initializer, fold_build_call_array,
	fold_build_call_array_initializer, fold_single_bit_test,
	omit_one_operand, omit_two_operands, invert_truthvalue,
	fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
	combine_comparisons, fold_builtin_*, fold_call_expr,
	build_range_check, maybe_fold_offset_to_address, round_up,
	round_down.
objc/
	* objc-act.c: Add location argument to all calls to
	build_fold_addr_expr.
testsuite/
	* gcc.dg/pr36902.c: Add column info.
	* g++.dg/gcov/gcov-2.C: Change count for definition.
cp/
	* typeck.c, init.c, class.c, method.c, rtti.c, except.c, error.c,
	tree.c, cp-gimplify.c, cxx-pretty-print.c, pt.c, semantics.c,
	call.c, cvt.c, mangle.c: Add location argument to
	fold_{unary,binary,ternary}, fold_build[123], build_call_expr,
	build_size_arg, build_fold_addr_expr, build_call_array,
	non_lvalue, size_diffop, fold_build1_initializer,
	fold_build2_initializer, fold_build3_initializer,
	fold_build_call_array, fold_build_call_array_initializer,
	fold_single_bit_test, omit_one_operand, omit_two_operands,
	invert_truthvalue, fold_truth_not_expr, build_fold_indirect_ref,
	fold_indirect_ref, combine_comparisons, fold_builtin_*,
	fold_call_expr, build_range_check, maybe_fold_offset_to_address,
	round_up, round_down.
fortran/
	* trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c,
	trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location
	argument to fold_{unary,binary,ternary}, fold_build[123],
	build_call_expr, build_size_arg, build_fold_addr_expr,
	build_call_array, non_lvalue, size_diffop,
	fold_build1_initializer, fold_build2_initializer,
	fold_build3_initializer, fold_build_call_array,
	fold_build_call_array_initializer, fold_single_bit_test,
	omit_one_operand, omit_two_operands, invert_truthvalue,
	fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
	combine_comparisons, fold_builtin_*, fold_call_expr,
	build_range_check, maybe_fold_offset_to_address, round_up,
	round_down.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r149722
2009-07-16 22:29:52 +00:00
Jason Merrill
c32097d8b4 re PR libstdc++/37907 ([c++0x] support for std::is_standard_layout)
PR libstdc++/37907
	Support std::is_standard_layout and std::is_trivial traits,
	change POD to C++0x version (except for layout).
	* gcc/c-common.c (c_common_reswords): Add __is_standard_layout
	and __is_trivial.
	* gcc/c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
	* gcc/cp/cp-tree.h (enum cp_trait_kind): Add CPTK_IS_STD_LAYOUT,
	CPTK_IS_TRIVIAL.
	(struct lang_type_class): Add non_std_layout.
	(CLASSTYPE_NON_STD_LAYOUT): New.
	* gcc/cp/class.c (check_bases): Set it.
	(check_field_decls): Likewise.
	(check_bases_and_members): Likewise.
	* gcc/cp/parser.c (cp_parser_primary_expression): Handle RID_IS_STD_LAYOUT,
	RID_IS_TRIVIAL.
	(cp_parser_trait_expr): Likewise.
	* gcc/cp/semantics.c (trait_expr_value): Handle CPTK_IS_STD_LAYOUT,
	CPTK_IS_TRIVIAL.
	(finish_trait_expr): Likewise.
	* gcc/cp/tree.c (scalarish_type_p, trivial_type_p, std_layout_type_p): New.
	(pod_type_p): Use them.
	* gcc/cp/typeck.c (build_class_member_access_expr): Check
	CLASSTYPE_NON_STD_LAYOUT rather than CLASSTYPE_NON_POD_P.
	* libstdc++-v3/include/std/type_traits: Add is_standard_layout, is_trivial.

From-SVN: r149721
2009-07-16 16:36:10 -04:00
DJ Delorie
b3c5a40978 m32c.c (m32c_compare_redundant): Avoid removing compares that may be indirectly affected by previous instructions.
* config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
compares that may be indirectly affected by previous instructions.

From-SVN: r149719
2009-07-16 16:07:46 -04:00
Kaveh R. Ghazi
a41d064d96 builtins.c (do_mpc_arg2): New.
* builtins.c (do_mpc_arg2): New.
	(fold_builtin_2): Fold builtin cpow.
	* real.h (HAVE_mpc_pow): New.

testsuite:
	* gcc.dg/torture/builtin-math-5.c: Add more cases.
	* gcc.dg/torture/builtin-math-6.c: Likewise.  Depend on
	effective target "mpc_pow".
	* lib/target-supports.exp (check_effective_target_mpc_pow): New.

From-SVN: r149716
2009-07-16 17:46:30 +00:00
Richard Henderson
d19cb53b51 New test
From-SVN: r149715
2009-07-16 10:08:50 -07:00
Phil Muldoon
271167f113 printers.py (StdStringPrinter.to_string): Fetch std::string to the given length.
2009-07-16  Phil Muldoon <pmuldoon@redhat.com>
	    Tom Tromey <tromey@redhat.com>

	* python/libstdcxx/v6/printers.py (StdStringPrinter.to_string):
	Fetch std::string to the given length.

Co-Authored-By: Tom Tromey <tromey@redhat.com>

From-SVN: r149714
2009-07-16 16:33:31 +00:00
Bingfeng Mei
db87b56d20 modulo-sched.c (sms_schedule): stage_count <= 1 as correct comparison to skip unprofitable schedule
2009-07-16  Bingfeng Mei  <bmei@broadcom.com>

	* modulo-sched.c (sms_schedule): stage_count <= 1 as correct comparison
        to skip unprofitable schedule

From-SVN: r149712
2009-07-16 16:20:28 +00:00
Jakub Jelinek
a4452ba2e3 * obj-c++.dg/defs.mm (abort): Make it extern "C".
From-SVN: r149705
2009-07-16 15:19:05 +02:00
Paolo Carlini
6f0398bb14 istream.tcc (basic_istream<>::operator>>(short&), [...]): Implement resolution of DR 696, [Ready] in Frankfurt.
2009-07-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/istream.tcc (basic_istream<>::operator>>(short&),
	basic_istream<>::operator>>(int&)): Implement resolution of DR 696,
	[Ready] in Frankfurt.
	* include/tr1_impl/regex (regex_traits<>::value): Adjust.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc:
	New.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
	Adjust.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc:
	Likewise.
	* doc/xml/manual/intro.xml: Add an entry for DR 696.

	* include/bits/istream.tcc: Minor clean-up to the initializers of the
	__err locals.
	* include/bits/ostream.tcc: Likewise.
	* src/compatibility.cc: Likewise.
	* src/istream.cc: Likewise.

From-SVN: r149704
2009-07-16 12:41:03 +00:00
Simon Baldwin
ba0c638e22 gcc.c (option_map): New flag -no-canonical-prefixes.
* gcc.c (option_map): New flag -no-canonical-prefixes.
	* (display_help): Print help text for new flag.
	* (process_command): Move options translation and language specifics
	and handle new flag early.  Use it to set a function pointer to a
	prefix builder.  Replace make_relative_prefix calls with calls to
	the function pointed to.  Ignore new flag in regular options handling.
	* doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.

From-SVN: r149702
2009-07-16 11:25:20 +00:00
DJ Delorie
11af2d7b91 mep.md (sibcall_internal): Change register to avoid argument registers.
* config/mep/mep.md (sibcall_internal): Change register to avoid
argument registers.
(sibcall_value_internal): Likewise.

From-SVN: r149701
2009-07-15 22:44:40 -04:00
GCC Administrator
4c4b7a6ad5 Daily bump.
From-SVN: r149700
2009-07-16 00:16:41 +00:00
Eric Botcazou
9d2bb9026f re PR rtl-optimization/40710 (Linux kernel miscompiled for sh4-linux)
PR rtl-optimization/40710
	* resource.c (mark_target_live_regs): Reset DF problem to LR.

From-SVN: r149696
2009-07-15 21:32:46 +00:00
Adam Nemet
da45599cf6 * config/mips/mips.md (*extenddi_truncate<mode>,
*extendsi_truncate<mode>): Change type attribute to move_type
	with shift_shift.  Split out code handling exts from here ...
	(*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
	pattern.
	(*extendhi_truncateqi): Change type attribute to move_type with
	shift_shift.  Split out code handling exts from here ...
	(*extendhi_truncateqi_exts): ... to this new pattern.

From-SVN: r149694
2009-07-15 20:40:02 +00:00
Uros Bizjak
31f44cd09a sse.md (copysign<mode>3): Use "and-not" SSE instruction instead of "and" with inverted sign bit mask value.
* config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
	instead of "and" with inverted sign bit mask value.  Use
	"nonimmediate_operand" for operand 1 and operand 2 predicate.
	Allocate registers only for operand 4 and operand 5.

From-SVN: r149691
2009-07-15 17:40:15 +02:00
Uros Bizjak
1fba7394b0 sse.md (copysign<mode>3): Allocate registers only for operands[5] and operands[6].
* config/i386/sse.md (copysign<mode>3): Allocate registers only for
	operands[5] and operands[6].

From-SVN: r149690
2009-07-15 16:29:39 +02:00
Arnaud Charlet
fde4b6f5b4 Make-lang.in: Update dependencies
* gcc-interface/Make-lang.in: Update dependencies

	* gcc-interface/Makefile.in: Add target pairs for PPC/Xenomai

From-SVN: r149689
2009-07-15 15:20:41 +02:00
Arnaud Charlet
9cd33a669f [multiple changes]
2009-07-15  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb (Traverse_Declarations_Or_Statements): Add processing for
	N_Label. Remove SCO table entry for entry point (not used).

	* par_sco.ads: Remove SCO entry point type (not used)

	* switch.adb: Minor code clean up.

2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.ads (Base Record Types): Document enhanced encoding.

2009-07-15  Thomas Quinot  <quinot@adacore.com>

	* gnatls.adb: Minor reformatting

	* gnatcmd.adb: Minor code reorganization

2009-07-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Component_May_Be_Bit_Aligned): Use underlying type to
	determine whether a component of a private type has a composite type.

From-SVN: r149688
2009-07-15 15:06:43 +02:00
Arnaud Charlet
6eab5a9575 [multiple changes]
2009-07-15  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb: Minor reformatting throughout
	Minor code reorganization (put nested subprograms in alpha order)

2009-07-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Call): Prevent double attachment of the result
	when compiling a call to a protected function that returns a controlled
	object.

2009-07-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff): Consolidate the Lynx cases into
	one. Add task locking and unlocking around the critical region which
	mentions localtime_r and global variable timezone for various targets.
	Comment reformatting.

From-SVN: r149686
2009-07-15 14:57:06 +02:00
Robert Dewar
3eb532e6aa gnat_rm.texi: Document s-ststop.ads
2009-07-15  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document s-ststop.ads

	* impunit.ad: (Map_Array): New table of alternative names
	(Get_Kind_Of_Unit): Return possible suggested alternative name

	* impunit.ads (Get_Kind_Of_Unit): Return possible suggested
	alternative name.

	* sem_ch10.adb (Analalyze_With_Clause): Add name of possible
	alternative unit if an implementation unit is with'ed.

From-SVN: r149685
2009-07-15 14:53:31 +02:00