Commit Graph

142620 Commits

Author SHA1 Message Date
Aditya Kumar
ff17c26257 fix PR67984: check for constants in rename map
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230826
2015-11-24 18:00:52 +00:00
Aditya Kumar
cf98f0f49b move all declarations to a same .h file
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230825
2015-11-24 17:57:45 +00:00
Pierre-Marie de Rodat
caadda8e35 DWARF: materialize subprogram renamings in Ada as imported declarations
... so that debugger users can reference them instead of the renamed
subprograms.  This is in accordance with the DWARF specification: the
section 3.2.3 (Imported (or Renamed) Declaration Entities) allows
DW_TAG_imported_declaration DIEs to be used "as a general means to
rename or provide an alias for an entity regardless of the context in
which the importing declaration or the imported entity occur." (wording
from the DWARFv3 and DWARFv4 specifications, allowed in DWARFv2).

gcc/ada/ChangeLog:

	* gcc-interface/utils.c (gnat_write_global_declarations): Output
	debugging information for top-level imported declarations.

gcc/ChangeLog:

	* dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead
	of DW_TAG_namespace for IMPORTED_DECL declarations.  Call
	dwarf2out_imported_module_or_decl_1 for all DWARF versions as
	this function already takes care of checking what it can emit.

Bootstrapped, regtested and checked with GDB's testsuite on
x86_64-linux.

From-SVN: r230821
2015-11-24 16:59:43 +00:00
Szabolcs Nagy
16a21ab326 [AArch64] Documentation fix for -fpic
gcc/
	* doc/invoke.texi (-fpic): Add the AArch64 limit.
	(-fPIC): Add AArch64.

From-SVN: r230819
2015-11-24 16:06:30 +00:00
Michael Matz
f5c345fc41 re PR rtl-optimization/68392 (ICE: SIGSEGV in update_uses (fwprop.c:896) with -fno-checking)
PR rtl-optimization/68392
	* g++.dg/pr68392.C: New test.

From-SVN: r230818
2015-11-24 16:00:51 +00:00
Tom de Vries
9c37629fe0 Allow pass_lim to run outside pass_tree_loop
2015-11-24  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-im.c (tree_ssa_lim): Make static.
	(pass_lim::execute): Allow to run outside pass_tree_loop.

From-SVN: r230815
2015-11-24 14:47:55 +00:00
Wilco Dijkstra
4e55c7c347 [PATCH][AArch64] Improve add immediate expansion
gcc/

	* gcc/config/aarch64/aarch64.md (add<mode>3):
	Block early expansion into 2 add instructions.
	(add<mode>3_pluslong): New pattern to combine complex
	immediates into 2 additions.

From-SVN: r230814
2015-11-24 14:46:05 +00:00
Segher Boessenkool
6b2f9bb622 rs6000: Fix for and_operand oversight (PR68332, PR67677)
Calling rs6000_is_valid_and_mask on a reg instead of on a const_int is
not a good idea, as PR68332 and PR67677 as well as testing with
--enable-checking=yes,rtl show.  Fix this.


	PR target/66217
	PR target/67677
	PR target/68332
	* config/rs6000/predicates.md (and_operand): Check that the operand
	is a const_int before calling rs6000_is_valid_and_mask.

From-SVN: r230811
2015-11-24 15:04:11 +01:00
Nathan Sidwell
f768642887 * gcc.dg/sso/dump.h: Force IO to be putchar function call on nvptx.
From-SVN: r230810
2015-11-24 13:53:31 +00:00
Kyrylo Tkachov
a4fb29bc4d Testcase for PR rtl-optimization/68381
PR rtl-optimization/68381
	* gcc.c-torture/execute/pr68381.c: New test.

From-SVN: r230809
2015-11-24 13:35:56 +00:00
Rainer Orth
ef3a75060e Handle C++11 <math.h> overloads on Solaris 12
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
	* configure.ac: Use it.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* include/c_global/cmath [__cplusplus >= 201103L]
	(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
	(std::isfinite): Likewise.
	(std::isinf): Likewise.
	(std::isnan): Likewise.
	(std::isnormal): Likewise.
	(std::signbit): Likewise.
	(std::isgreater): Likewise.
	(std::isgreaterequal): Likewise.
	(std::isless): Likewise.
	(std::islessequal): Likewise.
	(std::islessgreater): Likewise.
	(std::isunordered): Likewise.
	(std::acosh): Likewise.
	(std::asinh): Likewise.
	(std::atanh): Likewise.
	(std::cbrt): Likewise.
	(std::copysign): Likewise.
	(std::erf): Likewise.
	(std::erfc): Likewise.
	(std::exp2): Likewise.
	(std::expm1): Likewise.
	(std::fdim): Likewise.
	(std::fma): Likewise.
	(std::fmax): Likewise.
	(std::fmin): Likewise.
	(std::hypot): Likewise.
	(std::ilogb): Likewise.
	(std::lgamma): Likewise.
	(std::llrint): Likewise.
	(std::llround): Likewise.
	(std::log1p): Likewise.
	(std::log2): Likewise.
	(std::logb): Likewise.
	(std::lrint): Likewise.
	(std::lround): Likewise.
	(std::nearbyint): Likewise.
	(std::nextafter): Likewise.
	(std::nexttoward): Likewise.
	(std::remainder): Likewise.
	(std::remquo): Likewise.
	(std::rint): Likewise.
	(std::round): Likewise.
	(std::scalbln): Likewise.
	(std::scalbn): Likewise.
	(std::tgamma): Likewise.
	(std::trunc): Likewise.
	* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
	Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
	(std::tr1::asinh): Likewise.
	(std::tr1::atanh): Likewise.
	(std::tr1::cbrt): Likewise.
	(std::tr1::copysign): Likewise.
	(std::tr1::erf): Likewise.
	(std::tr1::erfc): Likewise.
	(std::tr1::exp2): Likewise.
	(std::tr1::expm1): Likewise.
	(std::tr1::fabs): Likewise.
	(std::tr1::fdim): Likewise.
	(std::tr1::fma): Likewise.
	(std::tr1::fmax): Likewise.
	(std::tr1::fmin): Likewise.
	(std::tr1::hypot): Likewise.
	(std::tr1::ilogb): Likewise.
	(std::tr1::lgamma): Likewise.
	(std::tr1::llrint): Likewise.
	(std::tr1::llround): Likewise.
	(std::tr1::log1p): Likewise.
	(std::tr1::log2): Likewise.
	(std::tr1::logb): Likewise.
	(std::tr1::lrint): Likewise.
	(std::tr1::lround): Likewise.
	(std::tr1::nearbyint): Likewise.
	(std::tr1::nextafter): Likewise.
	(std::tr1::nexttoward): Likewise.
	(std::tr1::remainder): Likewise.
	(std::tr1::remquo): Likewise.
	(std::tr1::rint): Likewise.
	(std::tr1::scalbln): Likewise.
	(std::tr1::scalbn): Likewise.
	(std::tr1::tgamma): Likewise.
	(std::tr1::trunc): Likewise.
	(std::tr1::pow): Likewise.

	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
	Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*.

From-SVN: r230807
2015-11-24 13:15:43 +00:00
Kyrylo Tkachov
714e1b3b4f [AArch64][v2] Improve comparison with complex immediates followed by branch/cset
* config/aarch64/aarch64.md (*condjump): Rename to...
	(condjump): ... This.
	(*compare_condjump<mode>): New define_insn_and_split.
	(*compare_cstore<mode>_insn): Likewise.
	(*cstore<mode>_insn): Rename to...
	(cstore<mode>_insn): ... This.
	* config/aarch64/iterators.md (CMP): Handle ne code.
	* config/aarch64/predicates.md (aarch64_imm24): New predicate.

	* gcc.target/aarch64/cmpimm_branch_1.c: New test.
	* gcc.target/aarch64/cmpimm_cset_1.c: Likewise.

From-SVN: r230805
2015-11-24 13:08:56 +00:00
Max Ostapenko
9211bbb278 Move ptrace.h to appropriate place.
libsanitizer/

	* include/system/linux/asm/ptrace.h: Move to ...
	* include/system/asm/ptrace.h: ... this.

From-SVN: r230804
2015-11-24 14:24:46 +02:00
Mikhail Maltsev
db92ed3685 Fix PR68497 (ICE with -fno-checking)
gcc/

	PR target/68497
	* config/i386/i386.c (output_387_binary_op): Fix assertion for
	-fno-checking case.

gcc/testsuite/

	PR target/68497
	* gcc.target/i386/pr68497.c: New test.

From-SVN: r230803
2015-11-24 12:18:21 +00:00
Trevor Saunders
5205ae6e27 remove val_ssa_equiv_hash_traits
gcc/ChangeLog:

2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
	(val_ssa_equiv_hash_traits::remove): Likewise.
	(pass_uncprop::execute): Adjust.

From-SVN: r230802
2015-11-24 11:46:18 +00:00
Trevor Saunders
76b6ddbfe2 destroy values as well as keys when removing them from hash maps
gcc/ChangeLog:

2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* hash-map-traits.h (simple_hashmap_traits ::remove): call
	destructors on values that are being removed.
	* mem-stats.h (hash_map): Pass type of values to
	simple_hashmap_traits.
	* tree-sra.c (sra_deinitialize): Remove work around for hash
	maps not destructing values.
	* genmatch.c (sinfo_hashmap_traits): Adjust.
	* tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.

From-SVN: r230801
2015-11-24 11:46:10 +00:00
Bilyan Borisov
cfa55545f9 [AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of...
[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out
of bounds accesses to vmulx_lane* NEON intrinsics

gcc/testsuite/

	* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f32_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f64_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxd_lane_f64_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxd_laneq_f64_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f32_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f64_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f32_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f64_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxs_lane_f32_indices_1.c:
	New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxs_laneq_f32_indices_1.c:
	New.

From-SVN: r230800
2015-11-24 11:22:48 +00:00
Kyrylo Tkachov
895548a571 [cfgloop] PR middle-end/68375: Restructure get_loop_body_in_bfs_order to handle loops with only a header
PR middle-end/68375
	* cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
	bogus assertion.

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

From-SVN: r230798
2015-11-24 11:03:51 +00:00
Jakub Jelinek
3788cfb513 re PR target/68483 (gcc 5.2: suboptimal code compared to 4.9)
PR target/68483
	* tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
	is valid vec_shr pattern, don't lower it even if can_vec_perm_p
	returns false.
	* optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
	whenever first is nelt or above.  Don't mask expected with
	2 * nelt - 1.

	* gcc.target/i386/pr68483-1.c: New test.
	* gcc.target/i386/pr68483-2.c: New test.

From-SVN: r230797
2015-11-24 11:45:52 +01:00
Ilya Enkovich
3de2a40ecd re PR c/68337 ([MPX] memcpy() for arrays with function pointers results in huge resource usage and binaries)
gcc/

	PR c/68337
	* gimple-fold.c: Include ipa-chkp.h.
	(gimple_fold_builtin_memory_op): Don't fold call if we
	are going to instrument it and it may copy pointers.

gcc/testsuite/

	PR c/68337
	* gcc.target/i386/mpx/pr68337-1.c: New test.
	* gcc.target/i386/mpx/pr68337-2.c: New test.

From-SVN: r230796
2015-11-24 09:45:20 +00:00
Kyrylo Tkachov
8632824e9c [RTL-ree] PR rtl-optimization/68194: Restrict copy instruction in presence of conditional moves
PR rtl-optimization/68194
	PR rtl-optimization/68328
	PR rtl-optimization/68185
	* ree.c (combine_reaching_defs): Reject copy_needed case if
	copies_list is not empty.

	* gcc.c-torture/execute/pr68185.c: New test.
	* gcc.c-torture/execute/pr68328.c: Likewise.

From-SVN: r230795
2015-11-24 09:31:57 +00:00
Gary Dismukes
4404c2826c sem_ch3.adb, [...]: Minor reformatting, rewording, and typo corrections.
2015-11-24  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb,
	sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor
	reformatting, rewording, and typo corrections.

From-SVN: r230794
2015-11-24 10:22:24 +01:00
Richard Biener
8ab1d9d72c re PR middle-end/68221 (libgomp reduction-11/12 failures)
2015-11-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/68221
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
	use mem_ref_offset.

From-SVN: r230793
2015-11-24 09:17:40 +00:00
Eric Botcazou
c4833de125 decl.c (gnat_to_gnu_entity): In ASIS mode, do a minimal translation for root types with discriminants.
* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
	ASIS mode, do a minimal translation for root types with discriminants.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Subunit>: Move around.
	<N_Entry_Body, N_Protected_Body, N_Task_Body>: Likewise.  In ASIS mode,
	process the declarations attached to the body.

From-SVN: r230792
2015-11-24 09:00:45 +00:00
Eric Botcazou
93200f92e5 trans.c (gnat_to_gnu): In type_annotate_only mode, do not build a NULL_EXPR for an N_Expanded_Name.
* gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do
	not build a NULL_EXPR for an N_Expanded_Name.

From-SVN: r230791
2015-11-24 08:52:54 +00:00
Max Ostapenko
664dd3cfbd Fix libsanitizer build with old kernel headers on ARM after r230739.
libsanitizer/

	* include/system/linux/asm/ptrace.h: New header.

From-SVN: r230790
2015-11-24 10:44:39 +02:00
Eric Botcazou
eae6758d2b decl.c (is_cplusplus_method): Check that the type of the first parameter (indirectly) has C++ convention too.
* gcc-interface/decl.c (is_cplusplus_method): Check that the type of
	the first parameter (indirectly) has C++ convention too.

From-SVN: r230788
2015-11-24 08:42:37 +00:00
Segher Boessenkool
7d906d07ed combine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)
Some users of is_parallel_of_n_reg_sets disregard the clobbers in a
parallel after it has returned "yes, this is a parallel of N sets and
maybe some clobbers".  But combine uses a clobber of const0_rtx to
indicate substitution failure, so this leads to disaster.

Fix this by checking for such special clobbers in is_parallel_of_n_reg_sets.


	PR rtl-optimization/68381
	* combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
	is poisoned.

From-SVN: r230786
2015-11-24 07:43:20 +01:00
Nick Clifton
d2c9e8ed7a [PATCH] Fix invalid redundant extension elimination for rl78 port
* ree.c (add_removable_extension): Avoid mis-optimizing cases where
	the source/dest of the target extension require a different number of
	hard registers.
	(combine_set_extension): Remove #if 0 code.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r230785
2015-11-23 22:11:15 -07:00
Jan Hubicka
267c9702f6 * gcc.c-torture/execute/lto-tbaa-1.c: New testcase.
From-SVN: r230784
2015-11-24 03:58:47 +00:00
GCC Administrator
a52a91ecf2 Daily bump.
From-SVN: r230783
2015-11-24 00:16:13 +00:00
David Edelsohn
08f1627810 Fix missing ChangeLog entry for Graphite head files fix.
From-SVN: r230780
2015-11-23 19:12:21 -05:00
Aditya Kumar
0171d98d77 fix PR68314: revert all patches touching the construction of the original schedule
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230778
2015-11-23 23:28:42 +00:00
Ian Lance Taylor
8c61286797 re PR go/68496 ([libgo] reflect test fails on Linux x86-64)
PR go/68496
    reflect: Allocate space for FFI functions returning a zero-sized type.
    
    The libffi library does not understand zero-sized types.  We represent
    them as a struct with a single field of type void.  If such a type is
    returned from a function, libffi will copy 1 byte of data.  Allocate
    space for that byte, although we won't use it.
    
    Fixes https://gcc.gnu.org/PR68496.

    Reviewed-on: https://go-review.googlesource.com/17175

From-SVN: r230776
2015-11-23 21:17:45 +00:00
David Malcolm
cbd03aee24 Fix PR objc/68438 (uninitialized source ranges)
gcc/c/ChangeLog:
	PR objc/68438
	* c-parser.c (c_parser_postfix_expression): Set up source ranges
	for various Objective-C constructs: Class.name syntax,
	@selector(), @protocol(), @encode(), and [] message syntax.

gcc/testsuite/ChangeLog:
	PR objc/68438
	* objc.dg/plugin: New subdirectory.
	* objc.dg/plugin/diagnostic-test-expressions-1.m: New test file.
	* objc.dg/plugin/plugin.exp: New file, based on
	gcc.dg/plugin/plugin.exp.

From-SVN: r230775
2015-11-23 21:00:13 +00:00
Matthias Klose
cd9ec14217 2015-11-23 Matthias Klose <doko@ubuntu.com>
* Imported zlib 1.2.8; merged local changes.

From-SVN: r230774
2015-11-23 20:27:57 +00:00
Aditya Kumar
4c93660449 fix PR68493: bail out when codegen_error is set
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230772
2015-11-23 19:31:00 +00:00
Aditya Kumar
36f40be012 fix PR68279: bail out when scev gets instantiated to not_known
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230771
2015-11-23 19:28:13 +00:00
Aditya Kumar
8f29e7f5ea call update_ssa once
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230770
2015-11-23 19:28:06 +00:00
Marek Polacek
78275c8bdb re PR tree-optimization/68455 (ICE: tree check: expected integer_cst, have plus_expr in decompose, at tree.h:5123)
PR tree-optimization/68455
	* tree-vrp.c (extract_range_from_binary_expr_1): Don't call
	extract_range_from_multiplicative_op_1 on symbolic ranges.

	* gcc.dg/tree-ssa/pr68455.c: New test.

From-SVN: r230768
2015-11-23 17:18:36 +00:00
Richard Henderson
cde9d59626 Add uaddv4_optab and usubv4_optab
PR target/67089
    	* optabs.def (uaddv4_optab, usubv4_optab): New.
    	* internal-fn.c (expand_addsub_overflow): Use uaddv4_optab
    	and usubv4_optab in the u +- u -> u case.
    	* doc/md.texi (Standard Names): Document addv{m}4, subv{m}4,
    	mulv{m}4, uaddv{m}4, usubv{m}4, umulv{m}4.

    	* config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.

From-SVN: r230767
2015-11-23 07:55:58 -08:00
Richard Biener
3789bf8412 re PR tree-optimization/68465 (pass_lim doesn't detect identical loop entry conditions)
2015-11-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68465
	* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
	Also record equalities from multiple predecessor blocks if
	only one non-backedge exists.

	* gcc.dg/tree-ssa/ssa-fre-52.c: New testcase.

From-SVN: r230764
2015-11-23 15:21:32 +00:00
Szabolcs Nagy
78cc43a2ab [ARM] PR target/68059 libgcc should not use __write for printing fatal error
libgcc/
	PR target/68059
	* config/arm/linux-atomic-64bit.c (__write): Rename to...
	(write): ...this and fix the return type.

From-SVN: r230762
2015-11-23 15:17:55 +00:00
Kyrylo Tkachov
e322d6e350 [AArch64] PR target/68363 Check that argument is real INSN in aarch64_madd_needs_nop
PR target/68363
	* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
	that are not INSN_P.

	* gcc.target/aarch64/pr68363_1.c: New test.

From-SVN: r230760
2015-11-23 14:56:03 +00:00
David Edelsohn
4d77601199 Correct graphite*.c ISL header file inclusion order.
* system.h: Don't poison calloc and strdup if USES_ISL is defined.
* graphite-dependences.c: Define USES_ISL.  Include ISL header files
after GCC header files and before graphite header files.
* graphite-dependences.c: Same.
* graphite-isl-ast-to-gimple.c: Same.
* graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-scop-detection.c: Same.
* graphite-sese-to-poly.c: Same.
* graphite.c: Same.

From-SVN: r230759
2015-11-23 09:23:59 -05:00
Bilyan Borisov
546e500c8f [AARCH64] Adding constant folding for __builtin_fmulx* with scalar 32 and 64 bit arguments
gcc/

	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): Added
	constant folding.

gcc/testsuite/

	* gcc.target/aarch64/simd/vmulx.x: New.
	* gcc.target/aarch64/simd/vmulx_f64_2.c: Likewise.
	* gcc.target/aarch64/simd/vmulxd_f64_2.c: Likewise.
	* gcc.target/aarch64/simd/vmulxs_f32_2.c: Likewise.

From-SVN: r230758
2015-11-23 14:23:20 +00:00
Igor Zamyatin
cc5c522696 re PR c++/68001 ([cilkplus] ICE in cp_gimplify_expr, at cp/cp-gimplify.c:760)
PR c++/68001

gcc/c-family
	PR c++/68001
	* c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
	* cilk.c (recognize_spawn): Determine location in a more precise
	way.
gcc/cp
	* cp-gimplify.c (cp_gimplify_expr): Stop the process if see an error.
gcc/testsuite
	* g++.dg/cilk-plus/CK/pr68001.cc: New test.

From-SVN: r230755
2015-11-23 12:58:12 +00:00
Jiong Wang
f7b492ea50 [Patch] Drop constant overflow flag in adjust_range_with_scev when possible
2015-11-23  Richard Biener  <rguenth@gcc.gnu.com>
            Jiong Wang  <jiong.wang@arm.com>

gcc/
  PR tree-optimization/68317
  PR tree-optimization/68326
  * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
  final min and max are not infinity.

gcc/testsuite/
  * gcc.dg/pr68317.c: New testcase.

From-SVN: r230754
2015-11-23 12:14:05 +00:00
Olivier Hainque
a789b24062 system-aix.ads: Add Frontend_Exceptions flag.
2015-11-23  Olivier Hainque  <hainque@adacore.com>

	* system-aix.ads: Add Frontend_Exceptions flag.
	* system-aix64.ads: Likewise.
	* system-darwin-ppc.ads: Likewise.
	* system-darwin-ppc64.ads: Likewise.
	* system-darwin-x86.ads: Likewise.
	* system-darwin-x86_64.ads: Likewise.
	* system-dragonfly-x86_64.ads: Likewise.
	* system-freebsd-x86.ads: Likewise.
	* system-freebsd-x86_64.ads: Likewise.
	* system-hpux-ia64.ads: Likewise.
	* system-hpux.ads: Likewise.
	* system-linux-alpha.ads: Likewise.
	* system-linux-armeb.ads: Likewise.
	* system-linux-armel.ads: Likewise.
	* system-linux-hppa.ads: Likewise.
	* system-linux-ia64.ads: Likewise.
	* system-linux-mips.ads: Likewise.
	* system-linux-mips64el.ads: Likewise.
	* system-linux-mipsel.ads: Likewise.
	* system-linux-ppc.ads: Likewise.
	* system-linux-ppc64.ads: Likewise.
	* system-linux-s390.ads: Likewise.
	* system-linux-s390x.ads: Likewise.
	* system-linux-sh4.ads: Likewise.
	* system-linux-sparc.ads: Likewise.
	* system-linux-sparcv9.ads: Likewise.
	* system-linux-x86.ads: Likewise.
	* system-linux-x86_64.ads: Likewise.
	* system-mingw-x86_64.ads: Likewise.
	* system-mingw.ads: Likewise.
	* system-rtems.ads: Likewise.
	* system-solaris-sparc.ads: Likewise.
	* system-solaris-sparcv9.ads: Likewise.
	* system-solaris-x86.ads: Likewise.
	* system-solaris-x86_64.ads: Likewise.
	* system-vxworks-arm.ads: Likewise.
	* system-vxworks-m68k.ads: Likewise.
	* system-vxworks-mips.ads: Likewise.
	* system-vxworks-ppc.ads: Likewise.
	* system-vxworks-sparcv9.ads: Likewise.
	* system-vxworks-x86.ads: Likewise.
	* system.ads: Likewise.

From-SVN: r230753
2015-11-23 11:31:24 +00:00
Olivier Hainque
0ab0bf955a opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, Back_End_SJLJ and Back_End_ZCX.
2015-11-23  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>

	* opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ,
	Back_End_SJLJ and Back_End_ZCX.
	(Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions,
	SJLJ_Exceptions): New functions, reflecting properties of the current
	Exception_Mechanism.
	* opt.adb: Implement the new functions.
	* fe.h: Bind the new Exception_Mechanism and helper functions for gigi.

	* exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by
	use of property helper and update comments.
	(Expand_Exception_Handlers): Replace tests on mechanism by use of
	helper. Restrict Abort_Defer to ZCX specifically.
	* exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on
	mechanism by calls to helper functions. Abort_Undefer for ZCX only,
	paired with Expand_Exception_Handlers.
	* exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism
	by calls to helper functions. Abort_Undefer for ZCX only, paired with
	Expand_Exception_Handlers.

	* lib-writ.ads (P line documentation): Add entry for "FX",
	representative of unit compiled with Frontend_Exceptions True.
	* lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if
	compiled with Frontend_Exceptions True.

	* ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect
	whether the ALI file contained an "FX" indication on the P line.
	(Frontend_Exceptions_Specified): New boolean, to keep track of whether
	at least an FX ALI file is in the closure.
	* ali.adb (Scan_ALI): Handle "FX" on the P line.
	(Initialize_ALI): Initialize Frontend_Exceptions_Specified to False.

	* targparm.ads: Update desription of exception schemes.
	(Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions
	set to True in system.ads, or not set at all.
	* targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions.
	Rename ZCD to ZCX for consistency.
	(FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly.

	* gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism
	setting, now from combination of Frontend_Exceptions and ZCX_By_Default.

	* bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename
	as ...
	(Check_Consistent_Exception_Handling): Check consistency of both
	ZCX_By_Default and Frontend_Exceptions.
	(Check_Configuration_Consistency): Check_Consistent_Exception_Handling
	if either flag was set at least once.

	* make.adb (Check): Remove processing of a possible -fsjlj coming from
	lang-specs.h.
	* gnatlink.adb (Gnatlin): Likewise.

	* gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set
	both ZCX_By_Default and Frontend_Exceptions.
	* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable):
	Use eh property helper to test for back-end exceptions. Adjust
	mechanism name when testing for front-end sjlj.
	(case E_Procedure): Likewise.
	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
	Likewise, and rename local variables.
	(Exception_Handler_to_gnu_sjlj): Rename as
	Exception_Handler_to_gnu_fe_sjlj.
	(Exception_Handler_to_gnu_zcx): Rename as
	Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms
	to use property helpers or correct mechanism name.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r230752
2015-11-23 11:20:34 +00:00