Commit Graph

108694 Commits

Author SHA1 Message Date
Eric Botcazou
6d3cc8f051 function.c (expand_function_start): Initialize stack_check_probe_note only if the generic stack checking mechanism...
* function.c (expand_function_start): Initialize stack_check_probe_note
	only if the generic stack checking mechanism is used.

From-SVN: r173661
2011-05-11 15:15:26 +00:00
Richard Guenther
51e020fc08 re PR tree-optimization/15256 ([tree-ssa] Optimize manual bitfield manipilation.)
2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/15256
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
	(A & B) | C, combine (A op CST1) op CST2.
	(tree_ssa_forward_propagate_single_use_vars): Only bother to
	visit assigns that have uses.

	* gcc.dg/tree-ssa/forwprop-14.c: New testcase.

From-SVN: r173659
2011-05-11 14:13:38 +00:00
Nathan Froyd
515456820e split tree_type
split tree_type
gcc/ada/
	* gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
	(TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
	(TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.

gcc/cp/
	* cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
	TYPE_VALUES_RAW.
	(UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
	(DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
	(TEMPLATE_TYPE_PARM_INDEX): Likewise.

gcc/
	* ggc-page.c (extra_order_size_table): Use struct
	tree_type_non_common.
	* lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
	(unpack_ts_type_common_value_fields): ...this.  Update comment.
	(unpack_value_fields): Adjust for renaming.
	(lto_input_ts_type_tree_pointers): Split into...
	(lto_input_ts_type_common_tree_pointer): ...this and...
	(lto_input_ts_type_non_common_tree_pointers): ...this.
	(lto_input_tree_pointers): Adjust for above split.
	* lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
	(pack_ts_type_common_value_fields): ...this.  Update comment.
	(lto_output_ts_type_tree_pointers): Split into...
	(lto_output_ts_type_common_tree_pointers): ...this and...
	(lto_output_ts_type_non_common_tree_pointers): ...this.
	(lto_output_tree_pointers): Adjust for above split.
	* lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
	TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
	* stor-layout.c (vector_type_mode): Adjust location of mode field.
	* tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
	Define.
	(struct tree_type): Split into...
	(struct tree_type_common: ...this and...
	(struct tree_type_with_lang_specific): ...this and...
	(struct tree_type_non_common): ...this.  Adjust accessor macros
	accordingly.
	(TYPE_VALUES_RAW): Define.
	(union tree_node): Update for above changes.
	* tree.c (tree_node_structure_for_code) [tcc_type]: Return
	TS_TYPE_NON_COMMON.
	(initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
	Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
	(tree_code_size) [tcc_type]: Use struct tree_type_non_common.
	* treestructu.def (TS_TYPE): Remove.
	(TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
	Define.

gcc/java/
	* java-tree.h (TYPE_ARGUMENT_SIGNATURE): Use TYPE_MINVAL.

gcc/lto/
	* lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL.  Adjust
	location of binfo field.
	(lto_fixup_prevailing_decls): Likewise.

gcc/objc/
	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
	(CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
	(PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.

From-SVN: r173658
2011-05-11 13:48:55 +00:00
Jakub Jelinek
b03c30822b re PR debug/48159 (ICE: SIGSEGV in build2_stat (tree.c:3802) with -ftree-loop-distribution -g)
PR debug/48159
	* tree-ssa.c (reset_debug_uses): New function.
	* tree-flow.h (reset_debug_uses): New prototype.
	* tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
	* tree-loop-distribution.c (generate_loops_for_partition): Call
	reset_debug_uses on the stmts that will be removed.  Keep around
	all debug stmts, don't count them as bits in partition bitmap.
	(generate_builtin): Don't count debug stmts or labels as bits in
	partition bitmap.

	* gcc.dg/pr48159-1.c: New test.
	* gcc.dg/pr48159-2.c: New test.

From-SVN: r173656
2011-05-11 14:53:43 +02:00
Richard Guenther
b5e04de5e3 gimple.c (gimple_type_hash_1): Merge with ...
2011-05-11  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_type_hash_1): Merge with ...
	(gimple_type_hash): ... this.
	(gtc_visit): Remove mode parameter and simplify accordingly.
	(gimple_types_compatible_p_1): Likewise.
	(gimple_types_compatible_p): Likewise.
	(iterative_hash_gimple_type): Likewise.
	(visit): Likewise.
	(gimple_type_eq): Adjust.

From-SVN: r173655
2011-05-11 12:45:00 +00:00
Revital Eres
fc6970e432 Support closing_branch_deps
From-SVN: r173654
2011-05-11 12:38:12 +00:00
Richard Guenther
41a58a92c3 re PR middle-end/48953 (ICE: verify_gimple failed: type mismatch in array reference with -flto and struct with vararray)
2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48953
	* tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.

	* gcc.dg/torture/pr48953.c: New testcase.

From-SVN: r173653
2011-05-11 12:23:12 +00:00
Joseph Myers
e9f8dcf9b3 opts.c (finish_options): Move warning settings from process_options.
* opts.c (finish_options): Move warning settings from
	process_options.
	* toplev.c (process_options): Move warning settings to
	finish_options.

From-SVN: r173651
2011-05-11 12:11:34 +01:00
Richard Guenther
10c224a9b0 re PR middle-end/18041 (OR of two single-bit bitfields is inefficient)
2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/18041
	* tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
	(simplify_bitwise_binary): ... this.  Handle operand conversions
	by applying them to the result instead.
	(tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.

	* gcc.dg/tree-ssa/forwprop-13.c: New testcase.

From-SVN: r173650
2011-05-11 10:52:57 +00:00
Richard Guenther
825b27deb9 gimple.c (gimple_canonical_types_compatible_p): Split out from gimple_types_compatible_p and friends.
2011-05-11  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_canonical_types_compatible_p): Split out
	from gimple_types_compatible_p and friends.  Do not recurse
	to pointed-to types.
	(gimple_canonical_type_eq): Use it.
	(iterative_hash_canonical_type): Split out from
	iterative_hash_gimple_type and friends.  Do not recurse
	to pointed-to types.
	(gimple_canonical_type_hash): Use it, allocate the hash here.

From-SVN: r173649
2011-05-11 08:36:51 +00:00
Revital Eres
ca7566250f Skip DEBUG_INSNs while recognizing doloop
From-SVN: r173647
2011-05-11 07:40:26 +00:00
Revital Eres
b8abece3d0 Skip DEBUG_INSN in loop-doloop.c
From-SVN: r173646
2011-05-11 07:12:14 +00:00
Revital Eres
ce7b376154 Doloop pattern for ARM
From-SVN: r173645
2011-05-11 07:08:44 +00:00
Alan Modra
ed1db3f15a re PR target/47755 (VSX code generates a TOC reference to clear memory)
PR target/47755
	* gcc.target/powerpc/pr47755-2.c: Require vsx_hw.

From-SVN: r173643
2011-05-11 13:59:13 +09:30
GCC Administrator
afdb5d86a4 Daily bump.
From-SVN: r173641
2011-05-11 00:18:23 +00:00
Nathan Froyd
a9dc9d376c make CASE_LABEL_EXPR not abuse TREE_CHAIN
make CASE_LABEL_EXPR not abuse TREE_CHAIN
	* tree.def (CASE_LABEL_EXPR): Add an operand.
	* tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.

From-SVN: r173633
2011-05-10 19:52:39 +00:00
Joseph Myers
96703596c4 c-decl.c (c_override_global_bindings_to_false): Remove.
* c-decl.c (c_override_global_bindings_to_false): Remove.
	(global_bindings_p): Don't check
	c_override_global_bindings_to_false.
	* c-tree.h (c_override_global_bindings_to_false): Remove.
	* c-typeck.c (composite_type): Don't set
	c_override_global_bindings_to_false.

From-SVN: r173632
2011-05-10 20:12:34 +01:00
Jason Merrill
955524371f re PR c++/48930 ([C++0x] Invalid implicitly declared default c'tor)
PR c++/48930
	* class.c (type_build_ctor_call): New.
	* cp-tree.h: Declare it.
	* decl.c (check_initializer): Use it instead of
	TYPE_NEEDS_CONSTRUCTING.
	* init.c (build_value_init, build_value_init_noctor): Likewise.
	(perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
	(build_vec_init): Likewise.
	* typeck2.c (process_init_constructor_array): Likewise.
	(process_init_constructor_record): Likewise.

From-SVN: r173628
2011-05-10 13:58:46 -04:00
Jason Merrill
b4359e45b9 re PR c++/48736 ([C++0x] ICE during list-initialization with variadics)
PR c++/48736
	* pt.c (tsubst_copy_and_build): Handle substitution of a pack
	expansion producing another expansion.

From-SVN: r173627
2011-05-10 13:58:38 -04:00
Ville Voutilainen
7506ab1de5 Fixes for override/final.
* class.c (check_for_override): Diagnose final on a nonvirtual
	member function, diagnose override for a virtual with no matching
	override. Don't fiddle around with DECL_VINDEX.

From-SVN: r173626
2011-05-10 13:58:30 -04:00
Nathan Froyd
d26e59864b mark EXPR_PACK_EXPANSION as typed only
mark EXPR_PACK_EXPANSION as typed only
        * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
        * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
        * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
        operand of EXPR_PACK_EXPANSION.
	(cp_tree_operand_length): Declare.
        * tree.c (cp_tree_operand_length): Define.
	(cp_tree_equal): Call it.
        * pt.c (value_dependent_expr_P): Likewise.
        * mangle.c (write_expression): Likewise.

From-SVN: r173625
2011-05-10 17:23:31 +00:00
Michael Meissner
dbcc9f08d5 Fix PRs 48857, 48495
From-SVN: r173624
2011-05-10 17:20:46 +00:00
Nathan Froyd
8242dd04b7 use build_function_type less in c-family and LTO
use build_function_type less in c-family and LTO
gcc/c-family/
	* c-common.c (def_fn_type): Don't call build_function_type, call
	build_function_type_array or build_varargs_function_type_array
	instead.
	(c_common_nodes_and_builtins): Likewise.

gcc/lto/
	* lto-lang.c (def_fn_type): Don't call build_function_type, call
	build_function_type_array or build_varargs_function_type_array
	instead.

From-SVN: r173623
2011-05-10 16:56:19 +00:00
Joseph Myers
4a68b4ca4e config.gcc (i[34567]86-*-darwin*, [...]): Add i386/darwin-lib.h to $libgcc_tm_file.
gcc:
	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
	i386/darwin-lib.h to $libgcc_tm_file.
	* config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.

libgcc:
	* config/i386/darwin-lib.h: New file.

From-SVN: r173622
2011-05-10 17:40:55 +01:00
Joseph Myers
bcb521e997 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
From-SVN: r173621
2011-05-10 16:33:48 +01:00
Joseph Myers
f10d3ac9bb gcc_update (gcc/config/rs6000/rs6000-tables.opt): New dependencies.
contrib:
	* gcc_update (gcc/config/rs6000/rs6000-tables.opt): New
	dependencies.

gcc:
	* config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New
	files.
	* config/rs6000/rs6000-tables.opt: New file (generated).
	* config.gcc (powerpc*-*-*, rs6000*-*-*): Add
	rs6000/rs6000-tables.opt to extra_options.
	* config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
	* config/rs6000/rs6000.c (rs6000_select): Remove.
	(processor_target_table): Move contents to rs6000-cpus.def.
	(darwin_rs6000_override_options): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.
	(rs6000_option_override_internal): Likewise.
	(rs6000_handle_option): Don't assert that global structures are in
	use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
	(rs6000_default_cpu): New variable.
	(rs6000_file_start): Set it instead of local default_cpu.  Check
	rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
	global_options_set.x_rs6000_tune_index instead of rs6000_select.
	(rs6000_darwin_file_start): Check rs6000_default_cpu and
	global_options_set.x_rs6000_cpu_index instead of rs6000_select.
	* config/rs6000/rs6000.h (struct rs6000_cpu_select,
	rs6000_select): Remove.
	* config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
	Remove.
	(mcpu=, mtune=): Use Var, Init, Enum and Save.
	* config/rs6000/t-rs6000
	($(srcdir)/config/rs6000/rs6000-tables.opt): New.
	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.

From-SVN: r173620
2011-05-10 15:46:34 +01:00
Joseph Myers
80cf2e08cc config.gcc (libgcc_tm_file): Define instead of including files from ../../libgcc/config/ in tm_file.
gcc:
	* config.gcc (libgcc_tm_file): Define instead of including files
	from ../../libgcc/config/ in tm_file.
	* configure.ac (libgcc_tm_file_list, libgcc_tm_include_list):
	Define.
	* configure: Regenerate.
	* Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
	libgcc_tm.h, cs-libgcc_tm.h): New.
	(TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
	(clean): Remove libgcc_tm.h.
	* config/arm/symbian.h (RENAME_LIBRARY): Remove.
	* mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
	* system.h (DECLARE_LIBRARY_RENAMES): Poison.

libgcc:
	* config/arm/symbian-lib.h: New.

From-SVN: r173619
2011-05-10 15:41:47 +01:00
Georg-Johann Lay
fd01a351df re PR target/48896 (avr.o warnings)
PR target/48896
	* config/avr/avr.c (avr_ret_register): Return unsigned int
	instead of int.
	(avr_function_value): Mark fn_decl_or_type as unused, don't pass
	it to avr_libcall_value.
	avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
	expand_expr.
	(avr_expand_binop_builtin): Ditto.
	(avr_expand_unop_builtin): Ditto.

From-SVN: r173617
2011-05-10 12:16:09 +00:00
DJ Delorie
34cc3c861d rx.h (JUMP_ALIGN, [...]): Define.
* config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
	(LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
	* config/rx/rx.c (rx_align_for_label): Add label and
	uses_threshold parameters.  Do not align when the label is not
	used enough.
	* config/rx/rx-protos.h (rx_align_for_label): Update prototype.

From-SVN: r173615
2011-05-10 11:01:49 +00:00
Richard Guenther
be17328916 tree-ssa-forwprop.c (combine_conversions): Pattern-match a series of conversions and apply foldings similar to what...
2011-05-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (combine_conversions): Pattern-match
	a series of conversions and apply foldings similar to what
	fold-const does.
	(tree_ssa_forward_propagate_single_use_vars): Call it.

	* gcc.dg/tree-ssa/ssa-fre-2.c: Disable forwprop.
	* gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-4.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
	* gcc.dg/tree-ssa/scev-cast.c: Adjust.  Note what transformation
	applies.

From-SVN: r173612
2011-05-10 09:57:50 +00:00
Jakub Jelinek
6ae70ea2e6 re PR tree-optimization/48611 (ICE: SIGSEGV in remap_eh_region_nr (tree-inline.c:1194) with -Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop on basic code)
PR tree-optimization/48611
	PR tree-optimization/48794
	* tree-eh.c (remove_unreachable_handlers): Don't remove regions
	referenced from RESX or EH_DISPATCH arguments.

	* gfortran.dg/gomp/pr48611.f90: New test.
	* gfortran.dg/gomp/pr48794.f90: New test.

From-SVN: r173607
2011-05-10 08:08:18 +02:00
Jakub Jelinek
e7f7802150 re PR debug/48928 (ICE: in decimal_to_decnumber, at dfp.c:113 with -O -g and decimal float)
PR debug/48928
	* dfp.c (decimal_to_decnumber): Handle conversion from
	dconst{1,2,m1,half}.

	* gcc.dg/dfp/pr48928.c: New test.

From-SVN: r173606
2011-05-10 08:05:20 +02:00
GCC Administrator
321f4ead0f Daily bump.
From-SVN: r173604
2011-05-10 00:19:26 +00:00
Paolo Carlini
0410e66d03 re PR c++/48522 ([C++0x] decltype((object)) with templated classes crashes g++ 4.5.1.)
2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/48522
	* g++.dg/cpp0x/pr48522.C: New.

From-SVN: r173598
2011-05-09 23:24:01 +00:00
Paolo Carlini
65dbe23923 re PR c++/48735 ([C++0x][SFINAE] Hard errors with array list-construction and deleted default c'tor)
2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/48735
	* g++.dg/cpp0x/sfinae21.C: New.

2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/template/sfinae28.C: Rename to...
	* g++.dg/cpp0x/sfinae19.C: ... this.
	* g++.dg/template/sfinae29.C: Rename to...
	* g++.dg/cpp0x/sfinae20.C: ... this.

From-SVN: r173597
2011-05-09 22:57:19 +00:00
Jeff Law
aec288a2f4 gcc-gdb-test.exp (gdb-test): Reorder matchers to give more consistent results.
* lib/gcc-gdb-test.exp (gdb-test): Reorder matchers to give more
	consistent results.

From-SVN: r173595
2011-05-09 15:40:54 -06:00
Fabien Chêne
9420e113a1 re PR c++/20039 (uninitialized const in new' of const struct')
gcc/testsuite/ChangeLog:

2011-05-09  Fabien Chene  <fabien@gcc.gnu.org>
	PR c++/20039
	* g++.dg/init/pr20039.C: New.

From-SVN: r173592
2011-05-09 22:56:29 +02:00
Uros Bizjak
fca132b919 i386.c (ix86_autovectorize_vector_sizes): Return 0 for !flag_prefer_avx128.
* config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
	for !flag_prefer_avx128.
	(ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.

From-SVN: r173591
2011-05-09 22:51:19 +02:00
Paolo Carlini
754af126c0 re PR c++/48737 ([C++0x][SFINAE] Hard errors with array list-construction with too many elements)
/cp
2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/48737
	PR c++/48744
	* decl.c (reshape_init): Take a complain parameter and do
	not call error if tf_error is not set.
	(check_initializer, reshape_init_r, reshape_init_array,
	reshape_init_array_1, reshape_init_vector, reshape_init_class):
	Adjust.
	* typeck2.c (digest_init_r): Take a complain parameter and
	pass it to convert_for_initialization.
	(digest_init, digest_init_flags, process_init_constructor_array,
	process_init_constructor_record, process_init_constructor_union,
	process_init_constructor, digest_init_r): Adjust.
	* init.c (expand_default_init, build_new_1): Likewise.
	* typeck.c (cp_build_modify_expr): Likewise.
	* decl2.c (grokfield): Likewise.
	* call.c (convert_like_real, convert_default_arg): Likewise.
	* semantics.c (finish_compound_literal): Pass complain to
	reshape_init and digest_init.
	* cp-tree.h: Adjust declarations.

/testsuite
2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/48737
	PR c++/48744
	* g++.dg/template/sfinae28.C: New.
	* g++.dg/template/sfinae29.C: Likewise.

From-SVN: r173590
2011-05-09 19:24:50 +00:00
Eric Botcazou
e4c0337862 fold-const.c (fold_range_test): Pass LOC to build_range_check.
* fold-const.c (fold_range_test): Pass LOC to build_range_check.
	(fold_ternary_loc): Use expr_location_or.

From-SVN: r173588
2011-05-09 18:36:31 +00:00
H.J. Lu
805d6a7592 One more POINTERS_EXTEND_UNSIGNED fix in mem_loc_descriptor.
2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/48853
	* dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
	POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
	Pmode and mem_mode is not VOIDmode.

From-SVN: r173587
2011-05-09 11:16:04 -07:00
Jason Merrill
14d0f7d244 * g++.dg/template/nontype23.C: New.
From-SVN: r173586
2011-05-09 14:03:02 -04:00
Fabien Chêne
1c682d060b Fix PR C++/48859
From-SVN: r173583
2011-05-09 19:42:21 +02:00
Jason Merrill
03808d178a re PR c++/34772 (self-initialisation does not silence uninitialised warnings (-Winit-self ignored))
PR c++/34772
	* decl.c (initialize_local_var): Use DECL_INITIAL for simple
	initialization.

From-SVN: r173582
2011-05-09 13:34:44 -04:00
Ville Voutilainen
b5da71d416 Implement final/override for member functions.
gcc/
	* tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST): Convert to enum.
	(TYPE_QUAL_VOLATILE, TYPE_QUAL_RESTRICT): Likewise.
gcc/cp/
	* class.c (check_for_override): Check for DECL_OVERRIDE_P.
	* cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
	(cp_virt_specifiers, enum virt_specifier): New.
	* decl.c (set_virt_specifiers): New.
	(grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
	* parser.c (make_call_declarator): add virt-specifiers parameter.
	(cp_parser_lambda_declarator_opt): Adjust.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_virt_specifier_seq_opt): New.
	* search.c (check_final_overrider): Diagnose attempts to override
	a final member function.

From-SVN: r173581
2011-05-09 13:34:35 -04:00
Uros Bizjak
51e7f3770c predicates.md (const_pow2_1_to_2_operand): Remove.
2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
	(const_pow2_1_to_8_operand): Ditto.
	(const_pow2_1_to_128_operand): Ditto.
	(const_pow2_1_to_32768_operand): Ditto.
	* config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
	const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
	in insn constraint to check integer value of operand 3.
	* config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.

	(PINSR_MODE): New mode iterator.
	(sse2p4_1): New mode attribute.
	(<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
	sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
	iterator.  Use const_int_operand instead of
	const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
	exact_log2 in insn constraint to check integer value of operand 3.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (blendbits): Remove mode attribute.
	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
	instead of const_0_to_<blendbits>_operand for operand 3 predicate.
	Check integer value of operand 3 in insn constraint.

From-SVN: r173580
2011-05-09 19:31:48 +02:00
Richard Guenther
0ca8de87c4 lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p for diagnostics.
2011-05-09  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
	for diagnostics.
	(lto_symtab_merge): Likewise.  Do not register types here.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	* gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
	* gimple.c (enum gtc_mode): Declare.
	(gimple_types_compatible_p): Make static.

From-SVN: r173575
2011-05-09 16:00:48 +00:00
Paolo Carlini
b04fa73811 re PR libstdc++/48933 (Infinite recursion in tr1/cmath functions with complex parameters)
2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/48933
	* include/c_global/cmath (acosh, asinh, atanh, cbrt, copysign,
	erf, erfc, exp2, expm1, fdim, fma, fmax, hypot, ilogb, lgamma,
	llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
	nextafter, nexttoward, remainder, remquo, rint, round, scalbln,
	scalbn, tgamma, trunc): Use __enable_if on the return type.
	* include/tr1/cmath: Likewise.
	* testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc: New.
	* testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc: Likewise.

From-SVN: r173574
2011-05-09 15:38:21 +00:00
Andreas Krebbel
a9e6994ab9 s390.md (TD/TF mem to reg move splitter): Make the temporary register to match Pmode.
2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (TD/TF mem to reg move splitter): Make the
	temporary register to match Pmode.

From-SVN: r173572
2011-05-09 14:37:12 +00:00
Dodji Seketeli
bae14a373c re PR c++/48574 (ICE)
Fix PR c++/48574

gcc/cp/

	PR c++/48574
	* class.c (fixed_type_or_null): Use type_dependent_p_push to test
	if the instance has a dependent initializer.

gcc/testsuite/

	PR c++/48574
	* g++.dg/template/dependent-expr8.C: New test case.

From-SVN: r173570
2011-05-09 14:32:06 +02:00