Commit Graph

137514 Commits

Author SHA1 Message Date
Andreas Tobler
faabf7880c re PR target/65535 (powerpc64-freebsd build failure)
PR target/65535
* config.gcc: Exit with a comment when we do not have a major version
number for the FreeBSD target.

From-SVN: r222192
2015-04-17 19:50:46 +02:00
Chris Manghane
b496063dcd compiler: Escape analysis.
By Chris Manghane.

Comprises three changes to gofrontend repository:

compiler: Add escape information to export data.

compiler: Stack-allocate non-escaping variables.

This change allows variables initialized through make or new
to be allocated on the stack via a temporary variable if they
do not escape their function. It also improves the analysis to
consider situations where variables escape in the standard
library and go testsuite such as:

*nested composite literals and composite literal arguments
*method receivers always escaping
*escape via statements in closures referring to enclosing variables
*escape via calls with multiple return results

compiler: Basic escape analysis for the go frontend.

This is an implementation of the algorithm described in
"Escape Analysis in Java" by Choi et. al.

It relies on dataflow information to discover variable
references to one another. Handles assignments to closures
and association between closures variables and the variables
of the enclosing scope.

Dataflow analysis does not discover references through range
statements e.g. for _, v := range a will not recognize that
all values of v are references to a.

	* Make-lang.in (GO_OBJS): Add go/escape.o.

From-SVN: r222188
2015-04-17 17:10:12 +00:00
Jakub Jelinek
c10b5ea0d8 re PR bootstrap/62077 (--with-build-config=bootstrap-lto fails)
PR bootstrap/62077
	* configure.ac (--enable-stage1-checking): Default to
	release,misc,gimple,rtlflag,tree,types if --disable-checking
	or --enable-checking is not specified and DEV-PHASE is not
	experimental.
	* configure: Regenerated.

From-SVN: r222187
2015-04-17 19:09:20 +02:00
Jakub Jelinek
98c1627cb5 re PR target/65689 ([AArch64] S constraint fails for inline asm at -O0)
PR target/65689
	* genpreds.c (struct constraint_data): Add maybe_allows_reg and
	maybe_allows_mem bitfields.
	(maybe_allows_none_start, maybe_allows_none_end,
	maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
	maybe_allows_mem_end): New variables.
	(compute_maybe_allows): New function.
	(add_constraint): Use it to initialize maybe_allows_reg and
	maybe_allows_mem fields.
	(choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
	is_address constraints such that those that allow neither mem nor
	reg come first, then those that only allow reg but not mem, then
	those that only allow mem but not reg, then the rest.
	(write_allows_reg_mem_function): New function.
	(write_tm_preds_h): Call it.
	* stmt.c (parse_output_constraint, parse_input_constraint): Use
	the generated insn_extra_constraint_allows_reg_mem function
	instead of always setting *allows_reg = true; *allows_mem = true;
	for unknown extra constraints.

	* gcc.target/aarch64/c-output-template-4.c: New test.

From-SVN: r222186
2015-04-17 18:43:28 +02:00
H.J. Lu
96583f22d7 Properly handle uninitialized common symbol
Uninitialized common symbol behavior in executables is target and linker
dependent.  default_binds_local_p_3 is made public and updated to take an
argument to indicate if the linker can guarantee that an uninitialized
common symbol in the executable will still be defined (through COPY
relocation) in the executable.  If common symbol is local to executable,
default_binds_local_p_3 will treat non-external variable as defined
locally.  default_binds_local_p_2 is changed to treat common symbol as
local for non-PIE binaries.

For i386, common symbol is local only for non-PIE binaries.  For x86-64,
common symbol is local only for non-PIE binaries or linker supports copy
reloc in PIE binaries.  If a target treats common symbol as local only
for non-PIE binaries, it can define TARGET_BINDS_LOCAL_P as
default_binds_local_p_2.

gcc/

	PR target/65780
	* output.h (default_binds_local_p_3): New.
	* varasm.c (default_binds_local_p_3): Make it public.  Take an
	argument to indicate if common symbol may be local.  If common
	symbol may be local, treat non-external variable as defined
	locally.
	(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
	(default_binds_local_p_1): Pass false to default_binds_local_p_3.
	* config/i386/i386.c (ix86_binds_local_p): New.
	(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
	ix86_binds_local_p.

gcc/testsuite/

	PR target/65780
	* gcc.dg/pr65780-1.c: New test.
	* gcc.dg/pr65780-2.c: Likewise.
	* gcc.target/i386/pr32219-9.c: Likewise.
	* gcc.target/i386/pr32219-1.c (xxx): Make it initialized common
	symbol.
	* gcc.target/i386/pr64317.c (c): Initialize.

From-SVN: r222184
2015-04-17 09:23:24 -07:00
Jakub Jelinek
aeebf48a70 re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf)
PR debug/65771
	* dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
	trying mem_loc_descriptor on XEXP (rtl, 0).

From-SVN: r222181
2015-04-17 16:16:30 +02:00
Martin Liska
bbd08a5dfa Fix IPA memory leaks.
* ipa-cp.c (ipcp_driver): Release prev_edge_clone.
	* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
	Release symbol_compare_collection.
	* ipa-reference.c: Add TODO that a vector should be released.

From-SVN: r222180
2015-04-17 13:56:15 +00:00
Sivanupandi Pitchumani
c11cdefbd1 re PR target/65296 ([avr] fix various issues with specs file generation)
PR target/65296
	* config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
	to new AVR-LibC file layout (bug #44574).
	(*avrlibc_devicelib): Same.
	* config/avr/avr-mcus.def: Adjust comments.
	* config/avr/avr.opt (nodevicelib): Adjust help.

From-SVN: r222179
2015-04-17 13:54:16 +00:00
H.J. Lu
abd0cdc9c0 Hide __cpu_indicator_init/__cpu_model from linker
We shouldn't call external function, __cpu_indicator_init, while an object
is being relocated since its .got.plt section hasn't been updated.  It
works for non-PIE since no update on .got.plt section is required.  This
patch creates libgcc.so as a linker script, hides __cpu_indicator_init
and __cpu_model in libgcc.so.1 from linker, forces linker to resolve
__cpu_indicator_init and __cpu_model to their hidden definitions in
libgcc.a while providing backward binary compatibility.

gcc/testsuite/

	PR target/65612
	* g++.dg/ext/mv18.C: New test.
	* g++.dg/ext/mv19.C: Likewise.
	* g++.dg/ext/mv20.C: Likewise.
	* g++.dg/ext/mv21.C: Likewise.
	* g++.dg/ext/mv22.C: Likewise.
	* g++.dg/ext/mv23.C: Likewise.

libgcc/

	PR target/65612
	* config.host (tmake_file): Add t-slibgcc-libgcc for Linux/x86.
	* config/i386/cpuinfo.c (__cpu_model): Initialize.
	(__cpu_indicator_init@GCC_4.8.0): New.
	(__cpu_model@GCC_4.8.0): Likewise.
	* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add
	-DUSE_ELF_SYMVER.

From-SVN: r222178
2015-04-17 05:58:07 -07:00
Alan Lawrence
05b1fb220b arm_neon.h (vdup_n_f32): Remove forward declaration.
* config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.

From-SVN: r222177
2015-04-17 12:56:45 +00:00
Patrick Palka
2234a9cb75 re PR c++/64527 (Constructor for empty struct not called in some situations)
Fix PR c++/64527

gcc/
	PR c++/64527
	* gimplify.c (gimplify_init_constructor): Always emit a
	side-effecting constructor.

gcc/testsuite/
	PR c++/64527
	* g++.dg/init/pr64527.C: New test.

From-SVN: r222176
2015-04-17 12:14:24 +00:00
Tom de Vries
3f6a2f9e08 Add missing PR lines in ChangeLog
From-SVN: r222175
2015-04-17 09:47:10 +00:00
Tom de Vries
d67cb100c6 Set PROP_gimple_lva for functions without IFN_VA_ARG
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
	in cfun->curr_properties.
	(gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
	if we generate an IFN_VA_ARG.
	* tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
	function if PROP_gimple_lva is not set in src function.

From-SVN: r222174
2015-04-17 09:27:08 +00:00
Tom de Vries
f8e89441bc Postpone expanding va_arg until pass_stdarg
2015-04-17  Tom de Vries  <tom@codesourcery.com>
	    Michael Matz  <matz@suse.de>

	* gimple-iterator.c (update_modified_stmts): Remove static.
	* gimple-iterator.h (update_modified_stmts): Declare.
	* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
	(gimplify_va_arg_internal): New function.
	(gimplify_va_arg_expr): Use IFN_VA_ARG.
	* gimplify.h (gimplify_va_arg_internal): Declare.
	* internal-fn.c (expand_VA_ARG): New unreachable function.
	* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
	* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
	(expand_ifn_va_arg): New function.
	(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
	(pass_stdarg::execute): Call expand_ifn_va_arg.
	(pass_data_lower_vaarg): New pass_data.
	(pass_lower_vaarg): New gimple_opt_pass.
	(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
	(make_pass_lower_vaarg): New function.
	* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
	properties_required field.
	* passes.def (all_passes): Add pass_lower_vaarg.
	* tree-pass.h (PROP_gimple_lva): Add define.
	(make_pass_lower_vaarg): Declare.

	* gcc.dg/tree-ssa/stdarg-2.c: Change f15 scan-tree-dump for target
	x86_64-*-*.

Co-Authored-By: Michael Matz <matz@suse.de>

From-SVN: r222173
2015-04-17 09:26:59 +00:00
Tom de Vries
1691b2e1ca Handle internal_fn in operand_equal_p
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
	* calls.c (call_expr_flags): Same.

From-SVN: r222172
2015-04-17 09:26:50 +00:00
Tom de Vries
302f08072f Factor optimize_va_list_gpr_fpr_size out of pass_stdarg::execute
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
	(pass_stdarg::execute): ... here.

From-SVN: r222171
2015-04-17 09:26:41 +00:00
Tom de Vries
8926e325db Add gimple_find_sub_bbs
2015-04-17  Tom de Vries  <tom@codesourcery.com>
	    Michael Matz  <matz@suse.de>

	* tree-cfg.c (make_blocks_1): Factor out of ...
	(make_blocks): ... here.
	(make_edges_bb): Factor out of ...
	(make_edges): ... here.
	(gimple_find_sub_bbs): New function.
	* tree-cfg.h (gimple_find_sub_bbs): Declare.

Co-Authored-By: Michael Matz <matz@suse.de>

From-SVN: r222170
2015-04-17 09:26:33 +00:00
Tom de Vries
cef3bed654 Disable lang_hooks.gimplify_expr in free_lang_data
2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.

From-SVN: r222169
2015-04-17 09:26:24 +00:00
Yury Gribov
18af8d16cf asan.c (set_sanitized_sections): New function.
2015-04-17  Yury Gribov  <y.gribov@samsung.com>

gcc/
	* asan.c (set_sanitized_sections): New function.
	(section_sanitized_p): Ditto.
	(asan_protect_global): Optionally sanitize user-defined
	sections.
	* asan.h (set_sanitized_sections): Declare new function.
	* common.opt (fsanitize-sections): New option.
	* doc/invoke.texi (-fsanitize-sections): Document new option.
	* opts-global.c (handle_common_deferred_options): Handle new
	option.

gcc/testsuite/
	* c-c++-common/asan/user-section-1.c: New test.

From-SVN: r222168
2015-04-17 07:51:02 +00:00
Jakub Jelinek
d7cb230a93 re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf)
PR debug/65771
	* dwarf2out.c (loc_list_from_tree): Return NULL
	for DEBUG_EXPR_DECL.

	* gcc.dg/debug/pr65771.c: New test.

From-SVN: r222166
2015-04-17 09:44:30 +02:00
Christian Bruel
86f46e3972 ipa-inline.c (can_inline_edge_p): Allow inlining of functions with same attributes.
* ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
same attributes.

From-SVN: r222165
2015-04-17 08:50:08 +02:00
GCC Administrator
37dc4579fb Daily bump.
From-SVN: r222164
2015-04-17 00:16:14 +00:00
Paolo Carlini
988db853d9 class.c (resolve_address_of_overloaded_function, [...]): Rename tsubst_flags_t parameter flags -> complain.
2015-04-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* class.c (resolve_address_of_overloaded_function, instantiate_type):
	Rename tsubst_flags_t parameter flags -> complain.

From-SVN: r222159
2015-04-16 20:57:46 +00:00
Zhouyi Zhou
6e3957da31 ira-color.c (setup_left_conflict_sizes_p): Do not process node itself when computing left conflict subnode size.
* ira-color.c (setup_left_conflict_sizes_p): Do not process
        node itself when computing left conflict subnode size.

From-SVN: r222157
2015-04-16 14:02:01 -06:00
Uros Bizjak
8c292b10e8 predicates.md (register_mixssei387nonimm_operand): New.
* config/i386/predicates.md (register_mixssei387nonimm_operand): New.
	* config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
	*fop_<mode>_1_sse using enabled attribute.  Use
	register_mixssei387nonimm_operand operand 1 predicate. Change
	alternative 3 constraints from "x" to "v".

From-SVN: r222154
2015-04-16 20:50:59 +02:00
H.J. Lu
fe7a6ae47f Replace __buitlin_alloca with __builtin_alloca
* gcc.target/i386/mpx/alloca-1-lbv.c (mpx_test): Replace
	__buitlin_alloca with __builtin_alloca.

From-SVN: r222151
2015-04-16 08:34:11 -07:00
Paolo Carlini
9f635abaab call.c (build_op_delete_call, [...]): Check mark_used return value.
2015-04-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (build_op_delete_call, build_over_call): Check mark_used
	return value.
	* class.c (resolve_address_of_overloaded_function): Likewise.
	* decl.c (cxx_maybe_build_cleanup): Likewise.
	* pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
	tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
	* rtti.c (build_dynamic_cast_1): Likewise.
	* semantics.c (process_outer_var_ref): Likewise.
	* typeck.c (build_class_member_access_expr,
	cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.

From-SVN: r222150
2015-04-16 15:12:10 +00:00
Alan Lawrence
b8147bfc61 [AArch64 Testsuite] Fix comments in vldN_lane_1.c
* gcc.target/aarch64/vldN_lane_1.c: Correct dup->lane in comments.

From-SVN: r222148
2015-04-16 12:25:34 +00:00
Richard Biener
b9334e4c48 re PR tree-optimization/65774 (FAIL: gcc.dg/builtin-arith-overflow-1.c (internal compiler error))
2015-04-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65774
	* tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
	bit-value tracking on.

From-SVN: r222147
2015-04-16 12:10:34 +00:00
Richard Biener
f8269ad4a9 re PR tree-optimization/64277 (Incorrect warning "array subscript is above array bounds")
2015-04-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64277
	* tree-vrp.c (check_array_ref): Fix anti-range handling,
	simplify upper bound handling.
	(search_for_addr_array): Simplify.
	(check_array_bounds): Handle ADDR_EXPRs here.
	(check_all_array_refs): Simplify.

	* gcc.dg/Warray-bounds-14.c: New testcase.
	* gcc.dg/Warray-bounds-15.c: Likewise.
	* c-c++-common/ubsan/bounds-4.c: Disable -Warray-bounds.
	* c-c++-common/ubsan/bounds-6.c: Likewise.

From-SVN: r222146
2015-04-16 12:03:11 +00:00
Uros Bizjak
579cef8f39 i386.c (print_reg): Rewrite function.
* config/i386/i386.c (print_reg): Rewrite function.

From-SVN: r222145
2015-04-16 13:39:53 +02:00
Andreas Krebbel
dba0dd688d S/390: Fix ira cost multiplier
* config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
	Invert the condition.

From-SVN: r222144
2015-04-16 11:29:28 +00:00
Renlin Li
76978b21c6 [PATCH]Enable two UNSIGNED_FLOAT simplifications in simplify_unary_operation_1.
gcc/

2015-04-16  Renlin Li  <renlin.li@arm.com>

	* simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
	simplifications for UNSIGNEDED_FLOAT.

gcc/testsuite/

2015-04-16  Renlin Li  <renlin.li@arm.com>

	* gcc.target/aarch64/unsigned-float.c: New.
	* gcc.target/arm/unsigned-float.c: New.

From-SVN: r222143
2015-04-16 08:36:21 +00:00
Nick Clifton
72ed112686 rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and MUL_UNINIT.
* config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
 	MUL_UNINIT.
 	(enum rl78_cpu_type): New.
 	* config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
 	(umulhi3_shift_virt): Remove m constraint from operand 1.
 	(umulqihi3_virt): Likewise.
 	* config/rl78/rl78.c (rl78_option_override): Add code to process
 	-mcpu and -mmul options.
 	(rl78_alloc_physical_registers): Add code to handle divhi and
 	divsi valloc attributes.
 	(set_origin): Likewise.
 	* config/rl78/rl78.h (RL78_MUL_G14): Define.
 	(TARGET_G10, TARGET_G13, TARGET_G14): Define.
 	(TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
 	__RL78_Gxx__.
 	(ASM_SPEC): Pass -mcpu on to assembler.
 	* config/rl78/rl78.md (mulqi3): Add a clobber of AX.
 	(mulqi3_rl78): Likewise.
 	(mulhi3_g13): Likewise.
 	(mulhi3): Generate the G13 or G14 versions of the insn directly.
 	(mulsi3): Likewise.
 	(mulhi3_g14): Add clobbers of AX and BC.
 	(mulsi3_g14): Likewise.
 	(mulsi3_g13): Likewise.
 	(udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
 	(udivmodsi4_g14, udivmodsi4_g13): New patterns.
 	* config/rl78/rl78.opt (mmul): Initialise value to
 	RL78_MUL_UNINIT.
 	(mcpu): New option.
 	(m13, m14, mrl78): New option aliases.
 	* config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
 	(MULTILIB_DIRNAMES): Add g13 and g14.
 	* doc/invoke.texi: Document -mcpu and -mmul options.

 	* config/rl78/divmodhi.S: Add G14 and G13 versions of the __divhi3
 	and __modhi3 functions.
	* config/rl78/divmodso.S: Add G14 and G13 versions of the
 	__divsi3, __udivsi3, __modsi3 and __umodsi3 functions.

From-SVN: r222142
2015-04-16 07:57:56 +00:00
Richard Biener
8a474dc5d7 tree-ssa-ccp.c (likely_value): See if we have operands that are marked as never simulate again and return...
2015-04-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-ccp.c (likely_value): See if we have operands that
	are marked as never simulate again and return CONSTANT in this
	case.
	* tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
	not have any operands that will be simulated again as
	not being simulated again.

	* gcc.dg/tree-ssa/ssa-ccp-36.c: New testcase.
	* gcc.dg/tree-ssa/pr37508.c: Adjust.
	* gfortran.dg/reassoc_6.f: Remove XFAIL.

From-SVN: r222141
2015-04-16 07:55:57 +00:00
GCC Administrator
8d1cac076c Daily bump.
From-SVN: r222140
2015-04-16 00:16:21 +00:00
Jason Merrill
58cc255ca0 constexpr.c (cxx_eval_store_expression): Ignore clobbers.
* constexpr.c (cxx_eval_store_expression): Ignore clobbers.
	(build_constexpr_constructor_member_initializers): Loop to find
	the BIND_EXPR.
	* decl.c (start_preparsed_function): Clobber the object at the
	beginning of a constructor.

From-SVN: r222135
2015-04-15 17:17:29 -04:00
Jason Merrill
efb5e8170a decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
* decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
	* method.c (implicitly_declare_fn): Likewise.
	* decl2.c (vague_linkage_p): Check TREE_PUBLIC first.

From-SVN: r222134
2015-04-15 17:17:21 -04:00
Jason Merrill
bf5730d773 * decl2.c (determine_visibility): Use get_template_info.
From-SVN: r222133
2015-04-15 17:17:15 -04:00
Jason Merrill
5ce3039eb1 re PR c++/65727 (Segfault With Decltype In Lambda Expression Used To Initialize Static Class Member)
PR c++/65727
	* lambda.c (lambda_expr_this_capture): In unevaluated context go
	through the normal loop, just don't capture.
	(maybe_resolve_dummy): Handle null return.

Co-Authored-By: Marek Polacek <polacek@redhat.com>

From-SVN: r222132
2015-04-15 17:17:03 -04:00
Uros Bizjak
cf0ed95b57 i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
	Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
	(*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
	attribute.
	(*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
	enabled attribute.
	(*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
	*float<SWI48:mode><MODEF:mode>2_sse.
	(*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
	enabled attribute.
	(*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
	enabled attribute.

From-SVN: r222131
2015-04-15 21:32:07 +02:00
Jeff Law
20e38fcf4f re PR tree-optimization/47679 (Strange uninitialized warning after SRA)
PR tree-optimization/47679
	* tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
	need for forward declaration in upcoming changes.
	(record_conditions, record_edge_info): Likewise.

From-SVN: r222130
2015-04-15 12:51:49 -06:00
Tom de Vries
5283d1ecc4 Fix fdump-passes
2015-04-15  Tom de Vries  <tom@codesourcery.com>

	PR other/65487
	* function.c (push_dummy_function): New function.
	(init_dummy_function_start): Use push_dummy_function.
	(pop_dummy_function): New function.  Factored out of ...
	(expand_dummy_function_end): ... here.
	* function.h (push_dummy_function, pop_dummy_function): Declare.
	* passes.c (pass_manager::dump_passes): Use push_dummy_function and
	pop_dummy_function.
	* tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.

From-SVN: r222129
2015-04-15 18:43:32 +00:00
Paolo Carlini
3a1351b9da call.c (enforce_access): Emit error + inform.
/cp
2015-04-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (enforce_access): Emit error + inform.

/testsuite
2015-04-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/alias-decl-22.C: Adjust for error + inform change.
	* g++.dg/cpp0x/decltype-call1.C: Likewise.
	* g++.dg/cpp0x/defaulted21.C: Likewise.
	* g++.dg/cpp0x/defaulted28.C: Likewise.
	* g++.dg/cpp0x/defaulted47.C: Likewise.
	* g++.dg/cpp0x/elision_neg.C: Likewise.
	* g++.dg/cpp0x/fntmpdefarg3.C: Likewise.
	* g++.dg/cpp0x/implicit-trivial1.C: Likewise.
	* g++.dg/cpp0x/implicit1.C: Likewise.
	* g++.dg/cpp0x/implicit9.C: Likewise.
	* g++.dg/cpp0x/inh-ctor9.C: Likewise.
	* g++.dg/cpp0x/range-for13.C: Likewise.
	* g++.dg/gomp/clause-2.C: Likewise.
	* g++.dg/gomp/udr-5.C: Likewise.
	* g++.dg/inherit/access6.C: Likewise.
	* g++.dg/lookup/duperr1.C: Likewise.
	* g++.dg/lookup/friend2.C: Likewise.
	* g++.dg/lookup/pr6936.C: Likewise.
	* g++.dg/lookup/scoped1.C: Likewise.
	* g++.dg/lookup/using26.C: Likewise.
	* g++.dg/lookup/using38.C: Likewise.
	* g++.dg/other/access2.C: Likewise.
	* g++.dg/overload/defarg3.C: Likewise.
	* g++.dg/overload/defarg6.C: Likewise.
	* g++.dg/parse/access11.C: Likewise.
	* g++.dg/parse/access2.C: Likewise.
	* g++.dg/parse/access3.C: Likewise.
	* g++.dg/parse/access4.C: Likewise.
	* g++.dg/parse/access5.C: Likewise.
	* g++.dg/parse/access6.C: Likewise.
	* g++.dg/parse/access8.C: Likewise.
	* g++.dg/parse/access9.C: Likewise.
	* g++.dg/parse/crash40.C: Likewise.
	* g++.dg/tc1/dr142.C: Likewise.
	* g++.dg/tc1/dr166.C: Likewise.
	* g++.dg/tc1/dr52.C: Likewise.
	* g++.dg/template/access11.C: Likewise.
	* g++.dg/template/access18.C: Likewise.
	* g++.dg/template/access19.C: Likewise.
	* g++.dg/template/access2.C: Likewise.
	* g++.dg/template/access20.C: Likewise.
	* g++.dg/template/access26.C: Likewise.
	* g++.dg/template/access3.C: Likewise.
	* g++.dg/template/access7.C: Likewise.
	* g++.dg/template/conv12.C: Likewise.
	* g++.dg/template/crash69.C: Likewise.
	* g++.dg/template/friend31.C: Likewise.
	* g++.dg/template/friend32.C: Likewise.
	* g++.dg/template/memfriend15.C: Likewise.
	* g++.dg/template/memfriend16.C: Likewise.
	* g++.dg/template/memfriend17.C: Likewise.
	* g++.dg/template/memfriend7.C: Likewise.
	* g++.dg/template/pr32519.C: Likewise.
	* g++.dg/template/qualttp21.C: Likewise.
	* g++.dg/template/qualttp8.C: Likewise.
	* g++.dg/template/ttp10.C: Likewise.
	* g++.dg/template/typedef11.C: Likewise.
	* g++.dg/template/typedef13.C: Likewise.
	* g++.dg/template/typedef19.C: Likewise.
	* g++.dg/template/typedef20.C: Likewise.
	* g++.dg/template/typedef22.C: Likewise.
	* g++.dg/template/using16.C: Likewise.
	* g++.dg/template/virtual3.C: Likewise.
	* g++.dg/ubsan/pr61272.C: Likewise.
	* g++.old-deja/g++.bob/inherit2.C: Likewise.
	* g++.old-deja/g++.brendan/crash11.C: Likewise.
	* g++.old-deja/g++.brendan/enum6.C: Likewise.
	* g++.old-deja/g++.brendan/visibility1.C: Likewise.
	* g++.old-deja/g++.brendan/visibility10.C: Likewise.
	* g++.old-deja/g++.brendan/visibility2.C: Likewise.
	* g++.old-deja/g++.brendan/visibility6.C: Likewise.
	* g++.old-deja/g++.brendan/visibility7.C: Likewise.
	* g++.old-deja/g++.brendan/visibility8.C: Likewise.
	* g++.old-deja/g++.brendan/visibility9.C: Likewise.
	* g++.old-deja/g++.bugs/900428_03.C: Likewise.
	* g++.old-deja/g++.jason/access17.C: Likewise.
	* g++.old-deja/g++.jason/access18.C: Likewise.
	* g++.old-deja/g++.jason/access22.C: Likewise.
	* g++.old-deja/g++.jason/access23.C: Likewise.
	* g++.old-deja/g++.jason/access8.C: Likewise.
	* g++.old-deja/g++.jason/delete3.C: Likewise.
	* g++.old-deja/g++.jason/report.C: Likewise.
	* g++.old-deja/g++.law/access2.C: Likewise.
	* g++.old-deja/g++.law/access3.C: Likewise.
	* g++.old-deja/g++.law/access4.C: Likewise.
	* g++.old-deja/g++.law/access5.C: Likewise.
	* g++.old-deja/g++.law/arm12.C: Likewise.
	* g++.old-deja/g++.law/arm14.C: Likewise.
	* g++.old-deja/g++.law/ctors13.C: Likewise.
	* g++.old-deja/g++.law/union2.C: Likewise.
	* g++.old-deja/g++.law/visibility12.C: Likewise.
	* g++.old-deja/g++.law/visibility15.C: Likewise.
	* g++.old-deja/g++.law/visibility16.C: Likewise.
	* g++.old-deja/g++.law/visibility17.C: Likewise.
	* g++.old-deja/g++.law/visibility18.C: Likewise.
	* g++.old-deja/g++.law/visibility19.C: Likewise.
	* g++.old-deja/g++.law/visibility20.C: Likewise.
	* g++.old-deja/g++.law/visibility21.C: Likewise.
	* g++.old-deja/g++.law/visibility24.C: Likewise.
	* g++.old-deja/g++.law/visibility4.C: Likewise.
	* g++.old-deja/g++.law/visibility5.C: Likewise.
	* g++.old-deja/g++.law/visibility6.C: Likewise.
	* g++.old-deja/g++.law/visibility7.C: Likewise.
	* g++.old-deja/g++.law/visibility8.C: Likewise.
	* g++.old-deja/g++.law/visibility9.C: Likewise.
	* g++.old-deja/g++.niklas/t135.C: Likewise.
	* g++.old-deja/g++.oliva/delete1.C: Likewise.
	* g++.old-deja/g++.oliva/partord1.C: Likewise.
	* g++.old-deja/g++.other/access11.C: Likewise.
	* g++.old-deja/g++.other/access4.C: Likewise.
	* g++.old-deja/g++.other/access7.C: Likewise.
	* g++.old-deja/g++.other/crash1.C: Likewise.
	* g++.old-deja/g++.other/crash7.C: Likewise.
	* g++.old-deja/g++.other/friend1.C: Likewise.
	* g++.old-deja/g++.other/friend4.C: Likewise.
	* g++.old-deja/g++.other/friend9.C: Likewise.
	* g++.old-deja/g++.other/lineno1.C: Likewise.
	* g++.old-deja/g++.other/using1.C: Likewise.
	* g++.old-deja/g++.pt/enum14.C: Likewise.
	* g++.old-deja/g++.pt/friend11.C: Likewise.
	* g++.old-deja/g++.pt/friend21.C: Likewise.
	* g++.old-deja/g++.pt/friend3.C: Likewise.
	* g++.old-deja/g++.pt/inherit2.C: Likewise.
	* g++.old-deja/g++.pt/memtemp74.C: Likewise.
	* g++.old-deja/g++.pt/memtemp89.C: Likewise.
	* g++.old-deja/g++.robertl/eb94.C: Likewise.

From-SVN: r222128
2015-04-15 17:18:27 +00:00
Chen Gang
d26b2237b3 gthr-single.h (__GTHREAD_MUTEX_INIT_FUNCTION): Use empty do-while loop as macro body to avoid warnings.
2015-04-15  Chen Gang  <gang.chen.5i5j@gmail.com>

       * gthr-single.h (__GTHREAD_MUTEX_INIT_FUNCTION): Use empty
       do-while loop as macro body to avoid warnings.

From-SVN: r222127
2015-04-15 09:29:12 -06:00
Marek Polacek
0567dcd254 constexpr.c (use_new_call): Remove #define.
* constexpr.c (use_new_call): Remove #define.
	(lookup_parameter_binding): Remove function.
	(cxx_bind_parameters_in_call): Remove unused code.
	(cxx_eval_call_expression): Likewise.
	(cxx_eval_constant_expression): Likewise.

From-SVN: r222126
2015-04-15 14:46:22 +00:00
Jeff Law
5141ed4263 re PR rtl-optimization/42522 ((zero_extract:SI (mem:QI) ...) misoptimized)
PR rtl-optimization/42522
        * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
        SIGN_EXTRACT as a whole object rather than simplifying
        its operand.

From-SVN: r222125
2015-04-15 06:24:28 -06:00
Jakub Jelinek
366ee94b44 re PR ipa/65765 (Compiling Firefox with GCC 5 leads to broken javascript engine on x86-64)
PR ipa/65765
	* ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
	and GIMPLE_PREDICT use break instead of return true. For
	GIMPLE_EH_DISPATCH, compare dispatch region.

	* g++.dg/ipa/pr65765.C: New test.

From-SVN: r222123
2015-04-15 13:47:44 +02:00
Andreas Schwab
f8a7e15406 re PR bootstrap/65763 (tm.h: No such file or directory)
PR bootstrap/65763
	* Makefile.am (gcc_build_dir): Remove $(host_subdir)/ part.
	* Makefile.in: Regenerated.

From-SVN: r222121
2015-04-15 11:23:59 +02:00
Matthew Wahab
a1e2583920 extend.texi (__sync Builtins): Simplify some text.
* doc/extend.texi (__sync Builtins): Simplify some text.  Update
	details about the implementation.  Make clear preference for
	__atomic builtins.  Reduce possibility of future change.

From-SVN: r222120
2015-04-15 08:35:53 +00:00