2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-03-20 06:50:26 +08:00

135098 Commits

Author SHA1 Message Date
Jakub Jelinek
8f94a8c4cc re PR sanitizer/64289 (ICE with -fsanitize=float-cast-overflow)
PR sanitizer/64289
	* c-convert.c: Include ubsan.h.
	(convert): For real -> integral casts and
	-fsanitize=float-cast-overflow don't call convert_to_integer, but
	instead instrument the float cast directly.

	* c-c++-common/ubsan/pr64289.c: New test.

From-SVN: r218811
2014-12-17 10:26:49 +01:00
Tim Shen
e16a69a8f2 re PR libstdc++/64302 (The match_results::cbegin()/cend() return incorrect results)
PR libstdc++/64302
	PR libstdc++/64303
	* include/bits/regex.h (match_results::cbegin, match_results::cend,
	regex_token_iterator::regex_token_iterator,
	regex_token_iterator::_M_normalize_result): Fix match_results cbegin
	and cend and regex_token_iterator::_M_result invariant.
	* include/bits/regex.tcc: Fix regex_token_iterator::_M_result invariant.
	* testsuite/28_regex/iterators/regex_token_iterator/64303.cc: Testcase.

From-SVN: r218810
2014-12-17 09:25:44 +00:00
Michael Haubenwallner
b20487079f drop reason for my change from ChangeLog
From-SVN: r218809
2014-12-17 08:27:53 +00:00
Tobias Burnus
f19626cf30 re PR fortran/54687 (Use gcc option machinery for gfortran)
2014-12-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54687
gcc/
        * flag-types.h (gfc_init_local_real, gfc_fcoarray,
        gfc_convert): New enums; moved from fortran/.

gcc/fortran/
        * gfortran.h (gfc_option_t): Remove flags which now
        have a Var().
        (init_local_real, gfc_fcoarray): Moved to ../flag-types.h.
        * libgfortran.h (unit_convert): Add comment.
        * lang.opt (flag-convert, flag-init_real, flag-coarray):
        Add Var() and Enum().
        * options.c (gfc_handle_coarray_option): Remove.
        (gfc_init_options, gfc_post_options, gfc_handle_option):
        Update for *.opt changes.
        * array.c: Update for flag-variable name changes.
        * check.c: Ditto.
        * match.c: Ditto.
        * resolve.c: Ditto.
        * simplify.c: Ditto.
        * trans-array.c: Ditto.
        * trans-decl.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-stmt.c: Ditto.
        * trans-types.c: Ditto.
        * trans.c: Ditto.

From-SVN: r218808
2014-12-17 07:29:30 +01:00
Oleg Endo
69044fa9eb crt.h: New.
libgcc/
	* config/sh/crt.h: New.
	* config/sh/crti.S: Use GLOBAL macro from crt.h for _init and _fini
	symbols.
	* config/sh/crt1.S: Likewise.

From-SVN: r218807
2014-12-17 02:01:10 +00:00
Ian Lance Taylor
d8a99c7c6b compiler: Don't crash on append with single argument.
Instead of allocating an empty slice literal, use a slice
value with a nil pointer.

From-SVN: r218806
2014-12-17 01:04:39 +00:00
GCC Administrator
03625f0717 Daily bump.
From-SVN: r218805
2014-12-17 00:16:33 +00:00
Paolo Carlini
0007ff03b0 re PR c++/58650 ([c++11] ICE with invalid friend declaration)
/cp
2014-12-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58650
	* parser.c (cp_parser_member_declaration): Fix error recovery for
	initialized non-static data member declared friend.

/testsuite
2014-12-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58650
	* g++.dg/parse/friend12.C: New.

From-SVN: r218801
2014-12-16 23:28:31 +00:00
Ian Lance Taylor
e0d475db10 compiler: Don't built hash/equality functions for thunk structs.
They are never necessary, and they can cause problems when a
thunk is used to pass an unexported type from a different
package to a function defined in that package.  The resulting
struct type may need to call the comparison routine from the
other package, which will fail because the type is not
exported.  This will be bug492 in the master testsuite.

From-SVN: r218798
2014-12-16 22:53:38 +00:00
Jan Hubicka
c0f15a3f24 * fibonacci_heap.h (min): Return m_data instead of non-existing data.
From-SVN: r218797
2014-12-16 22:30:22 +00:00
Jan Hubicka
061ddf67f7 ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider return values of const calls as constants.
* ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider
	return values of const calls as constants.
	(estimate_function_body_sizes): Expect calls to have false predicates.

From-SVN: r218796
2014-12-16 22:16:17 +00:00
Oleg Endo
8c7d662b9a re PR target/54089 ([SH] Refactor shift patterns)
gcc/testsuite/
	PR target/54089
	* gcc.target/sh/pr54089-1.c: Change optimization level from -O1 to -O2.

From-SVN: r218795
2014-12-16 21:37:42 +00:00
Ian Lance Taylor
ea9b01d4ff re PR go/61246 (gccgo: ICE in do_determine_types [GoSmith])
PR go/61246
compiler: Switch expression comparisons should be boolean typed.

From-SVN: r218794
2014-12-16 21:36:53 +00:00
Oleg Endo
e49aee92bb re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
gcc/testsuite/
	PR target/53513
	* gcc.target/sh/fpchg.c: Rename to ...
	* gcc.target/sh/pr53513-1.c: ... this.  Adjust test case to work for
	-m4a and -m4a-single.

From-SVN: r218793
2014-12-16 21:28:59 +00:00
Tobias Burnus
c61819ff0f re PR fortran/54687 (Use gcc option machinery for gfortran)
2014-12-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54687
        * gfortran.h (gfc_option_t): Remove flags which now
        have a Var().
        * lang.opt (flag-aggressive_function_elimination,
        flag-align_commons, flag-all_intrinsics,
        flag-allow_leading_underscore, flag-automatic, flag-backslash,
        flag-backtrace, flag-blas_matmul_limit, flag-cray_pointer,
        flag-dollar_ok, flag-dump_fortran_original,
        flag-dump_fortran_optimized, flag-external_blas, flag-f2c,
        flag-implicit_none, flag-max_array_constructor,
        flag-module_private, flag-pack_derived, flag-range_check,
        flag-recursive, flag-repack_arrays, flag-sign_zero,
        flag-underscoring): Add Var() and, where applicable, Enum().
        * options.c (gfc_init_options, gfc_post_options,
        gfc_handle_option): Update for *.opt changes.
        * arith.c: Update for flag-variable name changes.
        * array.c: Ditto.
        * cpp.c: Ditto.
        * decl.c: Ditto.
        * expr.c: Ditto.
        * f95-lang.c: Ditto.
        * frontend-passes.c: Ditto.
        * intrinsic.c: Ditto.
        * io.c: Ditto.
        * match.c: Ditto.
        * module.c: Ditto.
        * parse.c: Ditto.
        * primary.c: Ditto.
        * resolve.c: Ditto.
        * scanner.c: Ditto.
        * simplify.c: Ditto.
        * symbol.c: Ditto.
        * trans-array.c: Ditto.
        * trans-common.c: Ditto.
        * trans-decl.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-openmp.c: Ditto.
        * trans-types.c: Ditto.

From-SVN: r218792
2014-12-16 21:44:45 +01:00
Jan Hubicka
931977d919 hwint.c (abs_hwi, absu_hwi): Move to ...
* hwint.c (abs_hwi, absu_hwi): Move to ...
	* hwint.h (abs_hwi, absu_hwi): ... here; make inline.

From-SVN: r218791
2014-12-16 19:59:56 +00:00
Tobias Burnus
203c7ebffd 2014-12-15 Tobias Burnus <burnus@net-b.de>
* lang.opt (fsecond-underscore, frecord-marker=8,
        * frecord-marker=4,
        frealloc-lhs, freal-8-real-16, freal-8-real-10, freal-8-real-4,
        freal-4-real-16, freal-4-real-10, freal-4-real-8, fprotect-parens,
        fstack-arrays, fmax-stack-var-size=, fmax-subrecord-length=,
        ffrontend-optimize, ffree-line-length-, ffixed-line-length-,
        finteger-4-integer-8, fdefault-real-8, fdefault-integer-8,
        fdefault-double-8): Add Var() and Init().
        * gfortran.h (gfc_option_t): Remove moved flags.
        * options.c (gfc_init_options, gfc_handle_option): Ditto.
        (gfc_post_options): Update for name change.
        * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Handle
        flag-name change.
        * frontend-passes.c (gfc_run_passes): Ditto.
        * module.c (use_iso_fortran_env_module): Ditto.
        * primary.c (match_integer_constant, match_real_constant):
        * Ditto.
        * resolve.c (resolve_ordinary_assign): Ditto.
        * scanner.c (gfc_next_char_literal, load_line): Ditto.
        * trans-array.c (gfc_trans_allocate_array_storage,
        gfc_conv_resolve_dependencies, gfc_trans_auto_array_allocation,
        gfc_conv_ss_startstride): Ditto.
        * trans-common.c (gfc_sym_mangled_common_id): Ditto.
        * trans-decl.c (gfc_sym_mangled_function_id,
        create_main_function): Ditto.
        * trans-expr.c (gfc_conv_expr_op, gfc_conv_procedure_call,
        arrayfunc_assign_needs_temporary, gfc_trans_arrayfunc_assign,
        gfc_trans_assignment_1): Ditto.
        * trans-stmt.c (gfc_trans_allocate): Ditto.
        * trans-types.c (gfc_init_kinds): Ditto.

From-SVN: r218790
2014-12-16 20:24:50 +01:00
Ian Lance Taylor
6a85804bf7 re PR go/61264 (gccgo: ICE in __normal_iterator [GoSmith])
PR go/61264
compiler: Fix copying behavior for empty composite literals.

From-SVN: r218789
2014-12-16 19:14:54 +00:00
Ian Lance Taylor
8c54c36bdf re PR go/61273 (gccgo: ICE in Unsafe_type_conversion_expression::do_get_backend [GoSmith])
PR go/61273
compiler: Send statements should contextually permit composite literals.

From-SVN: r218788
2014-12-16 18:53:46 +00:00
Marek Polacek
01ada71078 re PR middle-end/64309 (if (1 & (1 << n)) not simplified to if (n == 0))
PR middle-end/64309
	* match.pd: Add ((1 << A) & 1) != 0 -> A == 0 and
	((1 << A) & 1) == 0 -> A != 0.

	* gcc.dg/pr64309.c: New test.

From-SVN: r218787
2014-12-16 18:29:01 +00:00
Richard Biener
d0af2c6589 genmatch.c (parser::parser): Initialize capture_ids.
2014-12-16  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::parser): Initialize capture_ids.
	(parser::parse_pattern): Properly allocate capture_ids before
	using them.  Set capture_ids to zero when its lifetime is
	supposed to finish.
	(parser::parse_simplify): Allocate capture_ids only if
	required.

From-SVN: r218786
2014-12-16 18:24:55 +00:00
Jakub Jelinek
7e2ac29ecb gnu.ver (CXXABI_1.3.9): Export not just _Zd[la]Pvm...
* config/abi/pre/gnu.ver (CXXABI_1.3.9): Export not just
	_Zd[la]Pvm, but also _Zd[la]Pv[jy] to cover other std::size_t
	manglings.

From-SVN: r218785
2014-12-16 18:42:24 +01:00
Jason Merrill
47830a4d38 gnu-versioned-namespace.ver: And other size_t manglings.
* config/abi/pre/gnu-versioned-namespace.ver: And other size_t
	manglings.

From-SVN: r218784
2014-12-16 12:21:42 -05:00
Michael Haubenwallner
bc1c9c2203 Both config.h and system.h define ABI/API macros for system headers.
* sreal.c: Include math.h later.

From-SVN: r218783
2014-12-16 17:14:49 +00:00
Michael Haubenwallner
9733278a16 MAINTAINERS (Write After Approval): Add myself.
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r218782
2014-12-16 16:10:23 +00:00
Jason Merrill
4244b840bd gnu-versioned-namespace.ver: Export _ZdlPvm and _ZdaPvm.
* config/abi/pre/gnu-versioned-namespace.ver: Export _ZdlPvm and
	_ZdaPvm.

From-SVN: r218781
2014-12-16 10:48:58 -05:00
Felix Yang
cc75dc899e re PR target/64240 ([AArch64] SMS-3.c causes runtime exception(segfault).)
+       PR rtl-optimization/64240
+       * ddg.c (mark_mem_use): Check *iter instead of *x.

From-SVN: r218780
2014-12-16 14:58:03 +00:00
Martin Liska
5007f79810 re PR other/64278 (/sreal.c:254:22: error: call of overloaded 'abs(const int64_t&)' is ambiguous)
Fix for PR ipa/64278

	* sreal.c (sreal::operator*): Replace std::abs with absu_hwi.

From-SVN: r218779
2014-12-16 14:55:29 +00:00
Jakub Jelinek
f2798565b4 sanitizer_symbolizer_libbacktrace.cc, [...]: Cherry pick upstream r224308.
* sanitizer_common/sanitizer_symbolizer_libbacktrace.cc,
	sanitizer_common/sanitizer_symbolizer_libbacktrace.h,
	sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc: Cherry pick
	upstream r224308.

From-SVN: r218778
2014-12-16 12:35:34 +01:00
Igor Zamyatin
ad52126ec3 i386.c (ix86_address_cost): Add explicit restriction to RTL level for the check for PIC register.
gcc/
	* config/i386/i386.c (ix86_address_cost): Add explicit restriction
	to RTL level for the check for PIC register.

From-SVN: r218777
2014-12-16 08:35:29 +00:00
Janus Weil
744868aa9c re PR fortran/64244 (ICE at class.c:236 when using non_overridable)
2014-12-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/64244
	* resolve.c (resolve_typebound_call): New argument to pass out the
	non-overridable attribute of the specific procedure.
	(resolve_typebound_subroutine): Get overridable flag from
	resolve_typebound_call.

2014-12-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/64244
	* gfortran.dg/typebound_call_26.f90: New.

From-SVN: r218776
2014-12-16 09:15:38 +01:00
Uros Bizjak
728f661cf5 gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ...
* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ...
	* config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): ... and here ...
	* config/i386/gnu-user-common.h (TARGET_CAN_SPLIT_STACK): ... to here.

From-SVN: r218775
2014-12-16 08:49:53 +01:00
Chung-Ju Wu
24f036fbc5 re PR target/64217 (LRA: generate wrong liveness info after r217947 for clobber in jump_insn)
PR target/64217
	* config/nds32/nds32.md (casesi_internal): Add '=r' for clobber
	register constraint.

From-SVN: r218774
2014-12-16 06:22:35 +00:00
GCC Administrator
e503ecc1e2 Daily bump.
From-SVN: r218772
2014-12-16 00:16:40 +00:00
Jan Hubicka
2e118f3cd2 decl2.c (decl_needed_p): When not optimizing, do not consider external decls as needed.
* decl2.c (decl_needed_p): When not optimizing, do not consider external
	decls as needed.

From-SVN: r218769
2014-12-15 22:50:18 +00:00
DJ Delorie
daca16d1f0 * config/rl78/rl78.h: Remove SHORT_IMMEDIATES_SIGN_EXTEND.
From-SVN: r218768
2014-12-15 17:41:22 -05:00
Jan Hubicka
6c36539dcf re PR lto/64043 (ICE (segfault) with LTO: in tree_check/tree.h:2758 get_binfo_at_offset/tree.c:11914)
PR lto/64043
	* gcc.dg/lto/20110201-1_0.c: New testcase.

	* tree-streamer.c (preload_common_nodes): Skip preloading
	of main_identifier_node, pid_type and optimization/option nodes.

From-SVN: r218767
2014-12-15 22:35:20 +00:00
Vladimir Makarov
2bf7560bd3 re PR rtl-optimization/63397 (signed integer overflows in ira.c)
2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63397
	* ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use
	int64_t.
	(ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
	* ira.c (ira_overall_cost, ira_overall_cost_before): Ditto.
	(ira_reg_cost, ira_mem_cost): Ditto.
	(ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
	(calculate_allocation_cost, do_reload): Use the right
	format for int64_t values.

From-SVN: r218766
2014-12-15 22:18:51 +00:00
Jan Hubicka
2bef63e105 sreal.h (to_double): New method.
* sreal.h (to_double): New method.
	(shift): Do not ICE on 0.
	* sreal.c: Include math.h
	(sreal::to_double): New.

From-SVN: r218765
2014-12-15 22:03:11 +00:00
Ian Lance Taylor
426bcc95cb re PR go/61255 (gccgo: spurious "error: argument 2 has incompatible type" [GoSmith])
PR go/61255
compiler: Copied variadic calls should copy lowering state of arguments.

From-SVN: r218764
2014-12-15 20:20:22 +00:00
Jason Merrill
b07891da2e re PR c++/64297 (ICE: canonical types differ for identical types)
PR c++/64297
	* typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL.

From-SVN: r218763
2014-12-15 15:19:51 -05:00
Jakub Jelinek
3202dcccb9 re PR rtl-optimization/64316 (ICE in simplify_const_unary_operation after r218503)
PR rtl-optimization/64316
	* simplify-rtx.c (simplify_relational_operation_1): For
	(eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use
	CONST0_RTX instead of const0_rtx.

	* gcc.dg/pr64316.c: New test.

From-SVN: r218762
2014-12-15 21:10:45 +01:00
Vladimir Makarov
d8c1674416 re PR target/62642 (x86 rdtsc is moved through barrier)
2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/62642
	* ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.

From-SVN: r218761
2014-12-15 20:04:04 +00:00
Vladimir Makarov
7b6e0c544a ira-int.h (ira_prohibited_class_mode_regs): Remove.
2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (ira_prohibited_class_mode_regs): Remove.
	(struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
	...
	* ira.h (struct target_ira_int): ... here.
	(ira_prohibited_class_mode_regs): Define.
	* lra-constraints.c (process_alt_operands): Add one more condition
	to refuse alternative when reload pseudo of given class can not
	hold value of given mode.

From-SVN: r218760
2014-12-15 19:51:31 +00:00
Uros Bizjak
2405e0ea00 re PR libgcc/63832 (crtstuff.c:400:19: warning: array subscript is above array bounds [-Warray-bounds])
PR libgcc/63832
	* crtstuff.c (__do_global_dtors_aux) [HIDDEN_DTOR_LIST_END]: Use
	func_ptr *dtor_list temporary variable to avoid "array subscript
	is above array bounds" warnings.

From-SVN: r218759
2014-12-15 19:43:26 +01:00
Jakub Jelinek
c05816d64f re PR rtl-optimization/63804 (ice in find_oldest_value_reg with -g -O2)
PR rtl-optimization/63804
	* gcc.dg/pr63804.c: New test.

From-SVN: r218758
2014-12-15 19:40:35 +01:00
Steven Bosscher
d5e2274d79 re PR fortran/61669 (Error recovery ICE)
PR fortran/61669
	* gfortran.h (struct gfc_namespace): Add OLD_DATA field.
	* decl.c (gfc_reject_data): New function.
	* parse.c *use_modules): Record roll-back point.
	(next_statement): Likewise.
	(reject_statement): Roll back to last accepted DATA.

	* gfortran.dg/pr61669.f90: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r218757
2014-12-15 19:37:59 +01:00
Richard Biener
76be46db72 re PR tree-optimization/64312 (ICE: Segmentation fault)
2014-12-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64312
	* tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
	vuse_ssa_val as callback to walk_non_aliased_vuses.
	(vn_reference_lookup): Likewise.

	* g++.dg/torture/pr64312.C: New testcase.

From-SVN: r218756
2014-12-15 18:33:16 +00:00
Jason Merrill
20b06addf9 N3778: Sized Deallocation
N3778: Sized Deallocation
gcc/c-family/
	* c.opt (-fsized-deallocation, -Wc++14-compat): New.
	(-Wsized-deallocation): New.
	* c-opts.c (c_common_post_options): -fsized-deallocation defaults
	to on in C++14 and up.
gcc/cp/
	* call.c (non_placement_deallocation_fn_p): A global sized
	operator delete is not a usual deallocation function until C++14.
	(build_op_delete_call): Choose the global sized op delete if we
	know the size.
	* cp-tree.h: Declare non_placement_deallocation_fn_p.
	(enum cp_tree_index): Remove CPTI_GLOBAL_DELETE_FNDECL.
	(global_delete_fndecl): Remove.
	* decl.c (cxx_init_decl_processing): Also declare sized op deletes.
	(grok_op_properties): Warn about sized dealloc without the flag.
	* init.c (build_builtin_delete_call): Remove.
	(build_vec_delete_1, build_delete): Don't call it.
	* decl2.c (maybe_warn_sized_delete): New.
	(cp_write_global_declarations): Call it.
libstdc++-v3/
	* libsupc++/del_ops.cc: New.
	* libsupc++/del_opvs.cc: New.
	* libsupc++/Makefile.am: Add them.
	* libsupc++/Makefile.in: Regenerate.
	* config/abi/pre/gnu.ver: Export _ZdlPvm and _ZdaPvm.

From-SVN: r218755
2014-12-15 13:31:40 -05:00
Ian Lance Taylor
14fa3e7fdf re PR go/61248 (gccgo: spurious "error: too many arguments" [GoSmith])
PR go/61248
compiler: Ignore argument when typechecking converted recover calls.

From-SVN: r218754
2014-12-15 17:33:43 +00:00