Commit Graph

143360 Commits

Author SHA1 Message Date
GCC Administrator fcc75e0b14 Daily bump.
From-SVN: r231988
2015-12-29 00:16:11 +00:00
Uros Bizjak 3100a56bab pr68473-1.c: Add dg-do compile directive.
* gcc.target/i386/pr68473-1.c: Add dg-do compile directive.

From-SVN: r231984
2015-12-28 23:38:29 +01:00
Patrick Palka f3ce64372c Tweak the documentation of libiberty's xcrc32 function
libiberty/ChangeLog;

	* crc32.c: In the documentation, don't refer to GDB's
	now-nonexistent crc32 implementation.  In the table-generation
	program embedded within the documentation, change the type of
	the induction variables i and j from int to unsigned int, to
	avoid undefined behavior.

From-SVN: r231983
2015-12-28 22:00:14 +00:00
John David Anglin 96d4e7be88 coarray_40.f90: Link with libatomic if available.
* gfortran.dg/coarray_40.f90: Link with libatomic if available.

From-SVN: r231981
2015-12-28 21:15:47 +00:00
John David Anglin 0d12d65909 pr49551.c: Skip on hppa*-*-hpux*.
* gcc.dg/pr49551.c: Skip on hppa*-*-hpux*.

From-SVN: r231980
2015-12-28 21:03:34 +00:00
John David Anglin cf1a404e3e pr67609.c: Add -fno-common option on hppa*-*-hpux*.
* gcc.dg/torture/pr67609.c: Add -fno-common option on hppa*-*-hpux*.

From-SVN: r231977
2015-12-28 20:38:31 +00:00
Bill Schmidt 5d57fdc109 rs6000.c (rs6000_emit_le_vsx_move): Verify that this is never called when lxvx/stxvx are available.
[gcc]

2015-12-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Verify that
	this is never called when lxvx/stxvx are available.
	(pass_analyze_swaps::gate): Don't perform swap optimization when
	lxvx/stxvx are available.
	* config/rs6000/vector.md (mov<mode>): Don't call
	rs6000_emit_le_vsx_move when lxvx/stxvx are available.
	* config/rs6000/vsx.md (*p9_vecload_<mode>): New define_insn.
	(*p9_vecstore_<mode>): Likewise.
	(*vsx_le_perm_load_<mode>:VSX_LE): Disable when lxvx/stxvx are
	available.
	(*vsx_le_perm_load_<mode>:VSX_W): Likewise.
	(*vsx_le_perm_load_v8hi): Likewise.
	(*vsx_le_perm_load_v16qi): Likewise.
	(*vsx_le_perm_store_<mode>:VSX_LE): Likewise.
	([related define_splits]): Likewise.
	(*vsx_le_perm_store_<mode>:VSX_W): Likewise.
	([related define_splits]): Likewise.
	(*vsx_le_perm_store_v8hi): Likewise.
	([related define_splits]): Likewise.
	(*vsx_le_perm_store_v16qi): Likewise.
	([related define_splits]): Likewise.
	(*vsx_lxvd2x2_le_<mode>): Likewise.
	(*vsx_lxvd2x4_le_<mode>): Likewise.
	(*vsx_lxvd2x8_le_V8HI): Likewise.
	(*vsx_lvxd2x16_le_V16QI): Likewise.
	(*vsx_stxvd2x2_le_<mode>): Likewise.
	(*vsx_stxvd2x4_le_<mode>): Likewise.
	(*vsx_stxvd2x8_le_V8HI): Likewise.
	(*vsx_stxvdx16_le_V16QI): Likewise.
	([define_peepholes for vector load fusion]): Likewise.

[gcc/testsuite]

2015-12-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/p9-lxvx-stxvx-1.c: New.
	* gcc.target/powerpc/p9-lxvx-stxvx-2.c: New.

From-SVN: r231974
2015-12-28 16:37:03 +00:00
Nathan Sidwell a02d84b6f8 nvptx.c (nvptx_output_call_insn): Expect hard regs.
* config/nvptx/nvptx.c (nvptx_output_call_insn): Expect hard regs.
	* config/nvptx/nvptx.md (nvptx_reg_or_mem_operand): Rename to ...
	(nvptx_nonimmediate_operand): ... here.  Update all uses.
	(call_insn_operand): Use REG_P.
	(call_operation): Allow hard regs.

From-SVN: r231972
2015-12-28 13:38:10 +00:00
GCC Administrator bcdb352b2c Daily bump.
From-SVN: r231970
2015-12-28 00:16:12 +00:00
Edward Smith-Rowland 9be77061cf 2015-12-27 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/bits/c++0x_warning.h Remove experimental language.

From-SVN: r231966
2015-12-28 00:07:19 +00:00
Jan Hubicka 71713fa639 ipa-visibility.c (function_and_variable_visibility): Do not dissolve comdat groups when in LTO mode.
* ipa-visibility.c (function_and_variable_visibility): Do not
	dissolve comdat groups when in LTO mode.

From-SVN: r231965
2015-12-27 13:33:19 +00:00
GCC Administrator 0b98ac42bf Daily bump.
From-SVN: r231964
2015-12-27 00:16:13 +00:00
GCC Administrator 7be58a1bea Daily bump.
From-SVN: r231960
2015-12-26 00:16:14 +00:00
Andreas Tobler 7cc913ef3a freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64 defines.
2015-12-25  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/rs6000/freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64
    defines. Use FBSD_DYNAMIC_LINKER instead.
    Rename and simplify LINK_OS_FREEBSD_SPEC_DEF32/64 to
    LINK_OS_FREEBSD_SPEC_DEF.

From-SVN: r231955
2015-12-25 21:58:58 +01:00
Peter Bergner 6ab9a51fcd Fix PR number in revision 231905 ChangeLogs.
From-SVN: r231954
2015-12-24 22:23:35 -06:00
Jason Merrill b4a0c79b1a Correct use of __GXX_WEAK__ macro.
* testsuite/ext/bitmap_allocator/check_deallocate_null.cc
	* testsuite/ext/bitmap_allocator/check_allocate_max_size.cc

From-SVN: r231953
2015-12-24 22:25:09 -05:00
Jason Merrill ee9661d435 re PR c++/69005 (infinite(?) recursion in template instantiations)
PR c++/69005

	* call.c (add_template_candidate_real): Don't try to deduce X(X).

From-SVN: r231952
2015-12-24 22:24:51 -05:00
GCC Administrator 36e7989ff0 Daily bump.
From-SVN: r231951
2015-12-25 00:16:15 +00:00
Aditya Kumar 1cb287721a Use const-ref instead of values for sese_l passed to functions.
gcc/ChangeLog:

2015-12-24  hiraditya  <hiraditya@msn.com>

        * graphite-sese-to-poly.c (build_loop_iteration_domains): Use ref instead of value.
        * sese.c (invariant_in_sese_p_rec): Use const ref instead of value.
        (scalar_evolution_in_region): Same
        * sese.h (bb_in_region): Same
        (bb_in_sese_p): Same.
        (stmt_in_sese_p): Same.
        (defined_in_sese_p): Same.
        (loop_in_sese_p): Same.

From-SVN: r231947
2015-12-24 16:41:57 +00:00
Aditya Kumar 402cab17fd Fix computation of single entry/exit of a region.
For basic block with two preds, allow (as single entry) only when the other
edge is a backedge. Similarly for basic block with two succs,
allow (as single exit) only when the other edge is a back edge.

2015-12-21  Aditya Kumar  <hiraditya@msn.com>

        * graphite-scop-detection.c (scop_detection::get_nearest_dom_with_single_entry): Check l == l2.
        (scop_detection::get_nearest_pdom_with_single_exit): Same.
        (scop_detection::merge_sese): Whitespace.
        (scop_detection::add_scop): Comment.
        (build_scops): Whitespace.

From-SVN: r231946
2015-12-24 16:41:46 +00:00
Kirill Yukhin 8e64f01831 Add missing intrinsic file.
From-SVN: r231945
2015-12-24 11:34:19 +00:00
Kirill Yukhin 41a4ef2243 Introduce support for PKU instructions.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PKU_SET): New.
	(OPTION_MASK_ISA_PKU_UNSET): Ditto.
	(ix86_handle_option): Handle OPT_mpku.
	* config.gcc: Add pkuintrin.h to i[34567]86-*-* and x86_64-*-*
	targets.
	* config/i386/cpuid.h (host_detect_local_cpu): Detect PKU feature.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle PKU ISA
	flag.
	* config/i386/i386.c (ix86_target_string): Add "-mpku" to
	ix86_target_opts.
	(ix86_option_override_internal): Define PTA_PKU, mention new key
	in skylake-avx512. Handle new ISA bits.
	(ix86_valid_target_attribute_inner_p): Add "pku".
	(enum ix86_builtins): Add IX86_BUILTIN_RDPKRU and IX86_BUILTIN_WRPKRU.
	(builtin_description bdesc_special_args[]): Add new built-ins.
	* config/i386/i386.h (define TARGET_PKU): New.
	(define TARGET_PKU_P): Ditto.
	* config/i386/i386.md (define_c_enum "unspecv"): Add UNSPEC_PKU.
	(define_expand "rdpkru"): New.
	(define_insn "*rdpkru"): Ditto.
	(define_expand "wrpkru"): Ditto.
	(define_insn "*wrpkru"): Ditto.
	* config/i386/i386.opt (mpku): Ditto.
	* config/i386/pkuintrin.h: New file.
	* config/i386/x86intrin.h: Include pkuintrin.h
	* doc/extend.texi: Describe new built-ins.
	* doc/invoke.texi: Describe new switches.
gcc/testsuite/
	* g++.dg/other/i386-2.C: Add -mpku.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/rdpku-1.c: New test.
	* gcc.target/i386/sse-12.c: Add -mpku.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-33.c: Ditto.
	* gcc.target/i386/wrpku-1.c: New test.

From-SVN: r231944
2015-12-24 11:05:34 +00:00
Richard Henderson 6549bdc6be re PR ipa/67811 ([TM] ICE with try-block in transaction)
PR ipa/67811

 * tree-cfg.c (make_edges_bb): Add abort edge for outer transactions.

From-SVN: r231943
2015-12-23 16:45:15 -08:00
GCC Administrator f89fc5c40b Daily bump.
From-SVN: r231942
2015-12-24 00:16:11 +00:00
Martin Sebor 7c332a4ee5 PR c++/69023 - bitset whose name is used in constant-expression rejected
PR c++/69023 - bitset whose name is used in constant-expression rejected
* g++.dg/lookup/name-clash11.C: New test.

From-SVN: r231938
2015-12-23 14:52:50 -07:00
Nathan Sidwell 97b7f1385a cgraph.h (decl_in_symtab_p): Revert check DECL_IN_CONSTANT_POOL.
gcc/
	* cgraph.h (decl_in_symtab_p): Revert check DECL_IN_CONSTANT_POOL.

	gcc/testsuite/
	* gcc.dg/alias-15.c: Revert.

From-SVN: r231931
2015-12-23 18:17:19 +00:00
Nathan Sidwell bd602b7fcb * config/nvptx/nvptx-protos.h
(nvptx_maybe_convert_symbolic_operand): Delete prototype.
	* config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand): Delete.
	(nvptx_output_mov_insn): Record fnsym here.
	(nvptx_wpropagate): Don't create UNSPEC_TO_GENERIC unspec.
	* config/nvptx/nvptx.md (UNSPEC_TO_GENERIC): Delete.
	(symbolic_operand): Delete predicate.
	(nvptx_nonimmediate_operand): Delete predicate.
	(mov<mode>): Hard regs are perfectly ok here.
	(convaddr_<mode>): Delete.

From-SVN: r231930
2015-12-23 16:55:31 +00:00
James Greenhalgh 44a55c645f [Patch testsuite] Skip gcc.dg/ifcvt-4.c for targets on which it may not work
gcc/testsuite/

	PR testsuite/68232
	* gcc.dg/ifcvt-4.c: Skip for arm*-*-* and powerpc64le*-*-*.

From-SVN: r231929
2015-12-23 16:35:20 +00:00
Nathan Sidwell 7ec4f3438c alias.c (compare_base_decls): Simplify in-symtab check.
gcc/
	* alias.c (compare_base_decls): Simplify in-symtab check.
	* cgraph.h (decl_in_symtab_p): Check DECL_IN_CONSTANT_POOL.

	testsuite/
	* gcc.dg/alias-15.c: New.

From-SVN: r231928
2015-12-23 14:47:39 +00:00
Dominik Vogt 986e29bc6a Fix broken handling of LABEL_REF in genrecog + genpreds.
gcc/ChangeLog

	* config/s390/predicates.md ("larl_operand"): Remove now superfluous
	const_int and const_double.
	* genrecog.c (safe_predicate_mode): Return false for VOIDmode
	LABEL_REFs even if the predicate does not handle const_int,
	const_double or const_wide_int.
	* genpreds.c (add_mode_tests): Treat LABEL_REF like CONST_INT.

From-SVN: r231927
2015-12-23 11:06:20 +00:00
Thomas Schwinge c7b48c8ae5 Merge OMP_CLAUSE_USE_DEVICE into OMP_CLAUSE_USE_DEVICE_PTR
gcc/c/
	* c-parser.c (c_parser_oacc_clause_use_device): Merge function
	into...
	(c_parser_omp_clause_use_device_ptr): ... this function.  Adjust
	all users.
	gcc/
	* tree-core.h (enum omp_clause_code): Merge OMP_CLAUSE_USE_DEVICE
	into OMP_CLAUSE_USE_DEVICE_PTR.  Adjust all users.

From-SVN: r231926
2015-12-23 12:01:18 +01:00
Thomas Schwinge e013d90cf6 Don't run OpenACC C++ test twice
gcc/testsuite/
	* g++.dg/dg.exp (tests): Prune "goacc/*" and "goacc-gomp/*" files.

From-SVN: r231925
2015-12-23 11:39:58 +01:00
David Sherwood 0a18c19f75 iterators.md (VMAXMINFNM): New int iterator.
2015-12-23  David Sherwood  <david.sherwood@arm.com>

    gcc/
        * config/arm/iterators.md (VMAXMINFNM): New int iterator.
        (fmaxmin): New int attribute.
        (fmaxmin_op): Likewise.
        * config/arm/unspecs.md (UNSPEC_VMAXNM): New unspec.
        (UNSPEC_VMINNM): Likewise.
        * config/arm/neon.md (fmaxmin): New pattern.
        * config/arm/vfp.md (fmaxmin): Likewise.
    gcc/testsuite
        * gcc.target/arm/fmaxmin.x: New file used by tests below.
        * gcc.target/arm/fmaxmin.c: New test.
        * gcc.target/arm/vect-fmaxmin.c: Likewise.

From-SVN: r231924
2015-12-23 10:28:18 +00:00
H.J. Lu fa87d16dcf [PATCH] Allow indirect call via GOT for 64-bit Pmode x32
From: H.J. Lu  <hongjiu.lu@intel.com>

Since Pmode is 64-bit with -maddress-mode=long for x32, indirect call
via GOT slot doesn't need zero_extend.  This patch enables indirect call
via GOT for x32 with 64-bit Pmode.

gcc/

	PR target/66232
	* config/i386/constraints.md (Bs): Allow GOT slot for x32 with
	64-bit Pmode.
	(Bw): Likewise.
	(Bz): Likewise.
	* config/i386/predicates.md (call_insn_operand): Likewise.
	(sibcall_insn_operand): Likewise.

gcc/testsuite/

	PR target/66232
	* gcc.target/i386/pr66232-10.c: New test.
	* gcc.target/i386/pr66232-11.c: Likewise.
	* gcc.target/i386/pr66232-12.c: Likewise.
	* gcc.target/i386/pr66232-13.c: Likewise.

From-SVN: r231923
2015-12-23 10:49:28 +01:00
GCC Administrator fc9ca1a0a1 Daily bump.
From-SVN: r231922
2015-12-23 00:16:13 +00:00
David Malcolm 070856cc13 PR c/68473: sanitize source range-printing within certain macro expansions
gcc/ChangeLog:
	PR c/68473
	* diagnostic-show-locus.c (layout::layout): Make loc_range const.
	Sanitize the layout_range against ranges that finish before they
	start.

gcc/testsuite/ChangeLog:
	PR c/68473
	* gcc.dg/plugin/diagnostic-test-expressions-1.c (fminl): New decl.
	(TEST_EQ): New macro.
	(test_macro): New function.
	* gcc.target/i386/pr68473-1.c: New test case.

From-SVN: r231919
2015-12-22 22:27:45 +00:00
David Malcolm 329590d704 libcpp: Avoid unnecessary ad-hoc uses for large source files
libcpp/ChangeLog:
	* line-map.c (get_combined_adhoc_loc): Remove condition
	on locus < RESERVED_LOCATION_COUNT when considering
	whether a caret == start == finish location can be
	simply stored as the caret location.

From-SVN: r231918
2015-12-22 22:06:00 +00:00
Jeff Law 9edb6bb8d3 [PATCH] Avoid unnecessary block copying in path splitting
* gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block
	copying.

From-SVN: r231915
2015-12-22 14:49:12 -07:00
Jason Merrill 5634394598 re PR c++/66921 (failure to determine size of static constexpr array that is nested within a templated class)
PR c++/66921
	* decl.c (cp_complete_array_type): Allow an initializer that
	already has array type.

From-SVN: r231914
2015-12-22 16:46:50 -05:00
Jason Merrill dfc9c48136 re PR c++/67257 (Internal compiler error in retrieve_specialization)
PR c++/67257
	* parser.c (cp_parser_single_declaration): Reject a class template
	that also declares a variable.

From-SVN: r231913
2015-12-22 16:46:44 -05:00
Jason Merrill d2889b1427 re PR c++/67339 (Segfault when parsing a typename involving a template-alias)
PR c++/67339
	* parser.c (cp_parser_elaborated_type_specifier): Use CLASS_TYPE_P
	rather than check for RECORD_TYPE.

From-SVN: r231912
2015-12-22 16:46:38 -05:00
Jakub Jelinek d6dd2c8e29 re PR c++/67376 (Comparison with pointer to past-the-end of array fails inside constant expression)
PR c++/67376
	* fold-const.c (size_low_cst): Removed.
	(fold_comparison): For POINTER_PLUS_EXPR where base is ADDR_EXPR
	call get_inner_reference and handle INDIRECT_REF base of it.  Use
	offset_int for computation of the bitpos.
	(fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Formatting
	fixes for X +- Y CMP X and C - X CMP X folding.  Add X CMP X +- Y
	and X CMP C - X folding.

	* g++.dg/cpp0x/constexpr-67376.C: New test.

From-SVN: r231909
2015-12-22 21:47:58 +01:00
Richard Henderson b5c4bc31ba Give EH_ELSE access to __builtin_eh_pointer
The must-not-throw wrapper for protect_cleanup_actions gets in
the way of being able to access __builtin_eh_pointer without
confusion as the identit of the exception to which we are
referring (b_eh_p has no usable argument up to this point).

Since EH_ELSE never comes from user derived code, let's drop
the c++ specific wrapping.

	* tree-eh.c (honor_protect_cleanup_actions): Do not wrap
	eh_else in a must-not-throw; set ehp_region for it too.

From-SVN: r231908
2015-12-22 11:42:31 -08:00
Richard Henderson 7c11b0fef0 re PR ipa/67811 ([TM] ICE with try-block in transaction)
PR ipa/67811

	* gimple.h (struct gtransaction): Add label_norm, label_uninst;
	replace label with label_over.
	(gimple_build_transaction): Remove label parameter.
	(gimple_transaction_label_norm): New.
	(gimple_transaction_label_uninst): New.
	(gimple_transaction_label_over): Rename from gimple_transaction_label.
	(gimple_transaction_label_norm_ptr): New.
	(gimple_transaction_label_uninst_ptr): New.
	(gimple_transaction_label_over_ptr): Rename from
	gimple_transaction_label_ptr.
	(gimple_transaction_set_label_norm): New.
	(gimple_transaction_set_label_uninst): New.
	(gimple_transaction_set_label_over): Rename from
	gimple_transaction_set_label.
	* gimple-pretty-print.c (dump_gimple_transaction): Update.
	* gimple-streamer-in.c (input_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple-streamer-out.c (output_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple-walk.c (walk_gimple_op) [GIMPLE_TRANSACTION]: Same.
	* tree-cfg.c (make_edges_bb) [GIMPLE_TRANSACTION]: Same.
	(cleanup_dead_labels) [GIMPLE_TRANSACTION]: Same.
	(verify_gimple_transaction): Same.
	(gimple_redirect_edge_and_branch) [GIMPLE_TRANSACTION]: Same.
	* tree-inline.c (remap_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple.c (gimple_build_transaction): Remove label parameter;
	initialize all three label memebers.
	* gimplify.c (gimplify_transaction): Update call
	to gimple_build_transaction.
	* trans-mem.c (make_tm_uninst): New.
	(lower_transaction): Create uninstrumented code path here...
	(ipa_tm_scan_calls_transaction): ... not here.
	(ipa_uninstrument_transaction): Remove.

testsuite/
	* g++.dg/tm/noexcept-1.C: Update expected must_not_throw count.
	* g++.dg/tm/noexcept-4.C: Likewise.
	* g++.dg/tm/noexcept-5.C: Likewise.
	* g++.dg/tm/pr67811.C: New.

From-SVN: r231907
2015-12-22 11:42:24 -08:00
Peter Bergner ebe9921f0c Fix previous ChangeLog entry
From-SVN: r231906
2015-12-22 13:29:04 -06:00
Peter Bergner fa17b3dba4 re PR target/68772 (Many -gstabs tests FAIL with Xcode 7 as)
gcc/
	PR target/68772
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le,
	pass %(asm_cpu_power8)/-mpwr8.
	* config/rs6000/aix53.h: Likewise.
	* config/rs6000/aix61.h: Likewise.
	* config/rs6000/aix71.h: Likewise.

gcc/testsuite/
	PR target/68772
	* gcc.target/powerpc/pr68872.c: New test.

From-SVN: r231905
2015-12-22 13:27:14 -06:00
Patrick Palka 6be028226e Fix read of uninitialized value in make_pack_expansion()
gcc/cp/ChangeLog:

	* pt.c (make_pack_expansion): Make sure to initialize
	ppd.type_pack_expansion_p.

From-SVN: r231904
2015-12-22 17:49:21 +00:00
H.J. Lu af9345d7df [PATCH] Use call-clobbered register for sibcall via GOT
From: H.J. Lu  <hongjiu.lu@intel.com>

Since sibcall never returns, we can only use call-clobbered register as
GOT base.  Otherwise, callee-saved register used as GOT base won't be
properly restored.  sibcall_memory_operand is changed to allow 32-bit
GOT slot only with pseudo register as GOT base for RTL expansion.  2
new patterns, *sibcall_GOT_32 and *sibcall_value_GOT_32, are added to
expose GOT base register to register allocator so that call-clobbered
register will be used for GOT base.

gcc/

	PR target/68937
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Count
	call to global function via GOT slot as indirect call.
	* config/i386/i386.md (*sibcall_GOT_32): New pattern.
	(*sibcall_value_GOT_32): Likewise.
	* config/i386/predicates.md (sibcall_memory_operand): Rewrite.
	Allow 32-bit GOT slot only with pseudo register as GOT base.
	(GOT32_symbol_operand): New predicate.

gcc/testsuite/

	PR target/68937
	* gcc.target/i386/pr68937-1.c: New test.
	* gcc.target/i386/pr68937-2.c: Likewise.
	* gcc.target/i386/pr68937-3.c: Likewise.
	* gcc.target/i386/pr68937-4.c: Likewise.
	* gcc.target/i386/pr68937-5.c: Likewise.
	* gcc.target/i386/pr68937-6.c: Likewise.

From-SVN: r231903
2015-12-22 16:38:25 +01:00
Marek Polacek fda5652f8f re PR c/69002 (C front end should warn about undefined access to atomic structure or union)
PR c/69002
	* c-typeck.c (build_component_ref): Warn when acessing elements of
	atomic structures or unions.

	* gcc.dg/c11-atomic-1.c: Add dg-warnings.
	* gcc.dg/c11-atomic-4.c: New test.

From-SVN: r231902
2015-12-22 15:23:21 +00:00
Sujoy Saraswati 5a00b0aaf0 This series of patches fix PR61441.
This series of patches fix PR61441. This patch avoids various transformations
with signaling NaN operands when flag_signaling_nans is on, to avoid folding
which would lose exceptions.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
	* fold-const.c (const_binop): Convert sNaN to qNaN when
	flag_signaling_nans is off.
	(const_unop): Avoid the operation, other than NEGATE and
	ABS, if flag_signaling_nans is on and the operand is an sNaN.
	(fold_convert_const_real_from_real): Avoid the operation if
	flag_signaling_nans is on and the operand is an sNaN.
	(integer_valued_real_unary_p): Update comment stating it
	returns false for sNaN values.
	(integer_valued_real_binary_p, integer_valued_real_call_p): Same.
	(integer_valued_real_single_p): Same.
	(integer_valued_real_invalid_p, integer_valued_real_p): Same.
	* fold-const-call.c (fold_const_pow): Avoid the operation
	if flag_signaling_nans is on and the operand is an sNaN.
	(fold_const_builtin_load_exponent) Same.
	(fold_const_call_sss): Same for CASE_CFN_POWI.
	* gimple-fold.c (gimple_assign_integer_valued_real_p): Same.
	(gimple_call_integer_valued_real_p): Same.
	(gimple_phi_integer_valued_real_p): Same.
	(gimple_stmt_integer_valued_real_p): Same.
	* simplify-rtx.c (simplify_const_unary_operation): Avoid the
	operation if flag_signaling_nans is on and the operand is an sNaN.
	(simplify_const_binary_operation): Same.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Avoid the
	operation if flag_signaling_nans is on and the operand is an sNaN.

	* gcc.dg/pr61441.c: New testcase.

From-SVN: r231901
2015-12-22 14:04:30 +00:00