aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-12-14[compare-debug] use call loc for nop_endbrAlexandre Oliva2-8/+15
We skip debug insns and notes after a call that needs a nop_endbr, but since a debug insn could be the last in a block, it may affect the loc in the emitted nop_endbr insn. Although this has no effect on codegen, it does mess with debug info a bit, and it causes -fcompare-debug to fail for e.g. libsanitizer's tsan/tsan_platform_linux.cc on x86_64. So, pick the location of the call insn for the nop_endbr insn, to avoid the line number differences in dumps, including -fcompare-debug ones. Also, we don't need to determine what the insert point would be unless we're actually emitting the nop_endbr insn after the call, so rearrange the code to avoid wasting cycles. Finally, it seems like testing for barriers is a mistake. We probably never actually pass that test, for the barriers would hit BB_END first. If we did, we'd end up emitting the nop_endbr outside any BB, even after the end of the function! That would be Very Bad (TM). Now, since the test as it is can't hurt, I figured I wouldn't change the logic right now, just add a comment so that someone involved in endbr stuff can have a second look and hopefully fix it. for gcc/ChangeLog * config/i386/i386.c (rest_of_insert_endbranch): Use call loc for its nop_endbr. From-SVN: r255639
2017-12-14[SFN] next/prev_nonnote_insn_bb are no more, even for portsAlexandre Oliva7-32/+45
The patch that added _nondebug to next_ and prev_nonnote_insn_bb failed to find and adjust uses within config. Fixed. for gcc/ChangeLog PR bootstrap/83396 * config/arc/arc.c (hwloop_optimize): Skip debug insns. * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust. * config/sh/sh.c: Skip debug insns besides notes. * config/sh/sh.md: Likewise. * config/sh/sh_treg_combine.cc: Likewise. * config/sh/sync.md: Likewise. From-SVN: r255638
2017-12-14Require effective target weak_undefined for visibility-22.cTom de Vries5-4/+24
2017-12-14 Tom de Vries <tom@codesourcery.com> * lib/target-supports.exp (check_effective_target_weak_undefined): New proc. * gcc.dg/visibility-22.c: Require effective target weak_undefined. * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): Add item for weak_undefined. From-SVN: r255637
2017-12-14re PR tree-optimization/67842 (Incorrect check in sese.h:bb_in_region)Richard Biener2-14/+5
2017-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/67842 * sese.h (bb_in_region): Remove #if 0'ed code. From-SVN: r255636
2017-12-14re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance ↵Richard Biener4-8/+64
regression with r255267 (reproducer attached)) 2017-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/83326 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add may_be_zero parameter and handle it by not marking the first peeled copy as not exiting the loop. (try_peel_loop): Likewise. (canonicalize_loop_induction_variables): Use number_of_iterations_exit to handle the case of constant or zero iterations and perform loop header copying on-the-fly. * gcc.dg/tree-ssa/pr81388-2.c: Adjust. From-SVN: r255635
2017-12-14Test whitespace handling in std::complex extractionJonathan Wakely2-0/+31
* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc: Add tests using noskipws. From-SVN: r255632
2017-12-14gigi.h (pad_type_has_rm_size): Declare.Eric Botcazou8-74/+133
* gcc-interface/gigi.h (pad_type_has_rm_size): Declare. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build a padding type for the alignment before validating the size. Flip conditional construct and add a comment. * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to apply the exception for padded objects to the type of the object. * gcc-interface/utils.c (hash_pad_type): New static function. (lookup_and_insert_pad_type): Rename into... (canonicalize_pad_type): ...this. Call hash_pad_type, do only one lookup with insertion and always return the canonical type. (maybe_pad_type): Adjust to above changes. Set debug type later. (pad_type_has_rm_size): New predicate. (set_reverse_storage_order_on_pad_type): Adjust to above changes. From-SVN: r255631
2017-12-14Improve std::complex test and move to sub-directoryJonathan Wakely2-17/+10
* testsuite/26_numerics/complex/dr2714.cc: Move to ... * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc: ... Here. Remove duplicate header and dg-options. Check first invalid character gets putback. Remove wchar_t test. From-SVN: r255630
2017-12-14re PR middle-end/83415 (ICE during gimplification of assignment to read-only ↵Richard Biener4-1/+25
vector) 2017-12-14 Richard Biener <rguenther@suse.de> PR c/83415 c/ * c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR like REALPART_EXPR for the behavior of whether its operand is an lvalue. * gcc.dg/pr83415.c: New testcase. From-SVN: r255629
2017-12-14re PR tree-optimization/83418 (ICE in ↵Richard Biener4-3/+33
extract_range_for_var_from_comparison_expr, at vr-values.c:448) 2017-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/83418 * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Instead of asserting we don't get unfolded comparisons deal with them. * gcc.dg/torture/pr83418.c: New testcase. From-SVN: r255628
2017-12-14re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers)Jakub Jelinek4-11/+38
PR bootstrap/83396 * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of basic blocks. Assert debug bind insns don't appear outside of bbs, don't reset them. Assert insns without BLOCK_FOR_INSN are outside of bb. Simplify. * gcc.dg/pr83396.c: New test. From-SVN: r255627
2017-12-14re PR tree-optimization/83198 (ICE in format_floating, at ↵Jakub Jelinek5-5/+59
gimple-ssa-sprintf.c:1900) PR tree-optimization/83198 * gimple-ssa-sprintf.c (format_floating): Set type solely based on dir.modifier, regardless of TREE_TYPE (arg). Assume non-REAL_CST value if arg is a REAL_CST with incompatible type. * gcc.dg/pr83198.c: New test. * gcc.dg/tree-ssa/pr83198.c: New test. From-SVN: r255626
2017-12-14[PATCH PR81228][AARCH64]Fix ICE by adding LTGT in vec_cmp<mode><v_int_equiv>Sudakshina Das5-1/+46
This patch is a follow up to the existing discussions on https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01904.html Bin had earlier submitted this patch to fix the ICE that occurs because of the missing LTGT in aarch64-simd.md. That discussion opened up a new bug report PR81647 for an inconsistent behavior. As discussed earlier on the gcc-patches discussion and on the bug report, PR81647 was occurring because of how UNEQ was handled in aarch64-simd.md rather than LTGT. Since __builtin_islessgreater is guaranteed to not give an FP exception but LTGT might, __builtin_islessgreater gets converted to ~UNEQ very early on in fold_builtin_unordered_cmp. Thus I will post a separate patch for correcting how UNEQ and other unordered comparisons are handled in aarch64-simd.md. This patch is only adding the missing LTGT to plug the ICE. Testing done: Checked for regressions on bootstrapped aarch64-none-linux-gnu and added a new compile time test case that gives out LTGT to make sure it doesn't ICE *** gcc/ChangeLog *** 2017-12-14 Sudakshina Das <sudi.das@arm.com> Bin Cheng <bin.cheng@arm.com> PR target/81228 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT to CCFPEmode. * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add LTGT. *** gcc/testsuite/ChangeLog *** 2017-12-14 Sudakshina Das <sudi.das@arm.com> PR target/81228 * gcc.dg/pr81228.c: New. Co-Authored-By: Bin Cheng <bin.cheng@arm.com> From-SVN: r255625
2017-12-14[AArch64] Specify fp16 support for Cortex-A55 and Cortex-A75Kyrylo Tkachov2-3/+8
The Cortex-A55 and Cortex-A75 processors support the fp16 extension. We already specify them as such in the arm port. This patch makes aarch64 consistent on this front. Bootstrapped and tested on aarch64-none-linux-gnu. Manually checked that compiling with aarch64-none-linux-gnu-gcc -mcpu=cortex-a55 -dM -E - < /dev/null shows __ARM_FEATURE_FP16_VECTOR_ARITHMETIC and __ARM_FEATURE_FP16_SCALAR_ARITHMETIC being specified as expected whereas they were not before this patch. * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75, cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features. From-SVN: r255624
2017-12-14re PR c++/79650 (ICE on invalid c++ code with label arithmetic in ↵Jakub Jelinek4-1/+44
convert_nontype_argument (pt.c:6515)) PR c++/79650 * pt.c (convert_nontype_argument): Diagnose reduced_constant_expression_p expressions that aren't INTEGER_CST. * g++.dg/template/pr79650.C: New test. From-SVN: r255623
2017-12-14re PR libfortran/78549 (Very slow formatted internal file output)Jerry DeLisle5-8/+44
2017-12-12 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/78549 * io/inquire.c (inquire_via_unit): Adjust test for existence for pre-connected internal units. * io/transfer.c (finalize_transfer): When done with a transfer to internal units, free the format buffer and close the stream. (st_read_done): Delete freeing the stream, now handled using sclose in finalize_transfer. (st_write_done): Likewise. * io/unit.c (get_unit): Return NULL for special reserved unit numbers, signifying not accessible to the user. (init_units): Insert the two special internal units into the unit treap. This makes these unit structures available without further allocations for later use by internal unit I/O. These units are automatically deleted by normal program termination. * io/unix.c (mem_close): Add a guard check to protect from double free. From-SVN: r255621
2017-12-14Daily bump.GCC Administrator1-1/+1
From-SVN: r255620
2017-12-14poly_int: add poly-int.hRichard Sandiford28-12/+8871
This patch adds a new "poly_int" class to represent polynomial integers of the form: C0 + C1*X1 + C2*X2 ... + Cn*Xn It also adds poly_int-based typedefs for offsets and sizes of various precisions. In these typedefs, the Ci coefficients are compile-time constants and the Xi indeterminates are run-time invariants. The number of coefficients is controlled by the target and is initially 1 for all ports. Most routines can handle general coefficient counts, but for now a few are specific to one or two coefficients. Support for other coefficient counts can be added when needed. The patch also adds a new macro, IN_TARGET_CODE, that can be set to indicate that a TU contains target-specific rather than target-independent code. When this macro is set and the number of coefficients is 1, the poly-int.h classes define a conversion operator to a constant. This allows most existing target code to work without modification. The main exceptions are: - values passed through ..., which need an explicit conversion to a constant - ?: expression in which one arm ends up being a polynomial and the other remains a constant. In these cases it would be valid to convert the constant to a polynomial and the polynomial to a constant, so a cast is needed to break the ambiguity. The patch also adds a new target hook to return the estimated value of a polynomial for costing purposes. The patch also adds operator<< on wide_ints (it was already defined for offset_int and widest_int). I think this was originally excluded because >> is ambiguous for wide_int, but << is useful for converting bytes to bits, etc., so is worth defining on its own. The patch also adds operator% and operator/ for offset_int and widest_int, since those types are always signed. These changes allow the poly_int interface to be more predictable. I'd originally tried adding the tests as selftests, but that ended up bloating cc1 by at least a third. It also took a while to build them at -O2. The patch therefore uses plugin tests instead, where we can force the tests to be built at -O0. They still run in negligible time when built that way. 2017-12-14 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * poly-int.h: New file. * poly-int-types.h: Likewise. * coretypes.h: Include them. (POLY_INT_CONVERSION): Define. * target.def (estimated_poly_value): New hook. * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook. * doc/tm.texi: Regenerate. * doc/poly-int.texi: New file. * doc/gccint.texi: Include it. * doc/rtl.texi: Describe restrictions on subreg modes. * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi. * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition. (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS. * targhooks.h (default_estimated_poly_value): Declare. * targhooks.c (default_estimated_poly_value): New function. * target.h (estimated_poly_value): Likewise. * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits. (wi::unary_traits): Delete. (wi::binary_traits::signed_shift_result_type): Define for offset_int << HOST_WIDE_INT, etc. (generic_wide_int::operator <<=): Define for all types and use wi::lshift instead of <<. (wi::hwi_with_prec): Add a default constructor. (wi::ints_for): New class. (operator <<): Define for all wide-int types. (operator /): New function. (operator %): Likewise. * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE) (ASSERT_MAYBE_NE_AT): New macros. gcc/testsuite/ * gcc.dg/plugin/poly-int-tests.h, gcc.dg/plugin/poly-int-test-1.c, gcc.dg/plugin/poly-int-01_plugin.c, gcc.dg/plugin/poly-int-02_plugin.c, gcc.dg/plugin/poly-int-03_plugin.c, gcc.dg/plugin/poly-int-04_plugin.c, gcc.dg/plugin/poly-int-05_plugin.c, gcc.dg/plugin/poly-int-06_plugin.c, gcc.dg/plugin/poly-int-07_plugin.c: New tests. * gcc.dg/plugin/plugin.exp: Run them. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r255617
2017-12-13re PR middle-end/78468 (libgomp.c/reduction-10.c and many more FAIL)Eric Botcazou5-18/+41
PR middle-end/78468 * emit-rtl.c (init_emit): Remove ??? comment. * explow.c (get_dynamic_stack_size): Take known alignment of stack pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY. * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the alignment of 3 virtual registers to BITS_PER_WORD. * config/sparc/sparc.c (sparc_compute_frame_size): Simplify. Co-Authored-By: Dominik Vogt <vogt@linux.vnet.ibm.com> From-SVN: r255616
2017-12-13ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.Peter Bergner5-0/+12
gcc/ * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define. * config/rs6000/rs6000.c (cpu_supports_info): Use it. gcc/testsuite/ * gcc.target/powerpc/cpu-builtin-1.c (htm-no-suspend): Add test. From-SVN: r255614
2017-12-13re PR c++/81061 (ICE modifying read-only variable)Paolo Carlini4-2/+20
/cp 2017-12-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81061 * typeck.c (cp_build_modify_expr): Upon cxx_readonly_error immediately return error_mark_node. /testsuite 2017-12-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81061 * g++.dg/other/const5.C: New. From-SVN: r255613
2017-12-13[SFN] don't eliminate regs in markersAlexandre Oliva2-1/+6
Eliminate regs in debug bind insns, but not in markers. for gcc/ChangeLog PR bootstrap/83396 * reload1.c (eliminate_regs_in_insn): Skip debug markers. From-SVN: r255612
2017-12-13tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts with the ↵Jakub Jelinek2-0/+18
exception of debug begin stmt markers appear... * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts with the exception of debug begin stmt markers appear before labels. From-SVN: r255611
2017-12-13re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers)Jakub Jelinek3-4/+11
PR bootstrap/83396 * final.c (rest_of_handle_final): Call variable_tracking_main only if !flag_var_tracking. From-SVN: r255610
2017-12-13re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers)Alexandre Oliva5-2/+112
PR bootstrap/83396 PR debug/83391 * tree-cfgcleanup.c (remove_forwarder_block): Keep after labels debug stmts that can only appear after labels. * gcc.dg/torture/pr83396.c: New test. * g++.dg/torture/pr83391.C: New test. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r255609
2017-12-13PR libstdc++/59568 fix error handling for std::complex stream extractionJonathan Wakely3-19/+217
PR libstdc++/59568 * include/std/complex (operator>>): Implement proposed resolution to LWG 2714. Use putback if and only if a character has been successfully extracted but isn't a delimiter. Use ctype::widen and traits::eq when testing if extracted characters match delimiters. * testsuite/26_numerics/complex/dr2714.cc: New test. From-SVN: r255608
2017-12-13sel-sched: fix sel_rank_for_schedule for qsort (PR 82398)Alexander Monakov2-1/+7
PR rtl-optimization/82398 * sel-sched.c (sel_rank_for_schedule): Fix check for zero EXPR_USEFULNESS in priority comparison. From-SVN: r255607
2017-12-13combine: Fix PR83393Segher Boessenkool4-1/+50
In move_deaths we move a REG_DEAD note if the instruction combination has extended the lifetime of a register so that the existing note is no longer valid. We find that note using reg_stat, but what that finds can refer to a later insn. If so, we cannot use the cached value. This patch implements that. PR rtl-optimization/83393 * combine.c (move_deaths): If reg_stat points to a too new insn in last_death, do not use it: find the proper insn instead. gcc/testsuite/ PR rtl-optimization/83393 * gcc.dg/pr83393.c: New testcase. From-SVN: r255606
2017-12-13[PR C++/15272] lookups with ambiguating dependent baseNathan Sidwell4-28/+58
https://gcc.gnu.org/ml/gcc-patches/2017-12/msg00766.html PR c++/15272 * pt.c (tsubst_baselink): Don't repeat the lookup for non-dependent baselinks. PR c++/15272 * g++.dg/template/pr71826.C: Adjust for 15272 fix. From-SVN: r255605
2017-12-13* gcc-interface/trans.c (Subprogram_Body_to_gnu): Initialize locus.Eric Botcazou2-1/+6
From-SVN: r255603
2017-12-13trans.c (process_freeze_entity): Be prepared for a package without body.Eric Botcazou2-4/+9
* gcc-interface/trans.c (process_freeze_entity): Be prepared for a package without body. From-SVN: r255601
2017-12-13decl.c (gnat_to_gnu_entity): Robustify test for types descendant of ↵Eric Botcazou2-3/+9
System.Address. * gcc-interface/decl.c (gnat_to_gnu_entity): Robustify test for types descendant of System.Address. (gnat_to_gnu_subprog_type): Likewise. From-SVN: r255599
2017-12-12Use C version of multi3 for RVE support.Kito Cheng4-91/+93
libgcc/ * config/riscv/t-elf: Use multi3.c instead of multi3.S. * config/riscv/multi3.c: New file. * config/riscv/multi3.S: Remove. From-SVN: r255598
2017-12-13Daily bump.GCC Administrator1-1/+1
From-SVN: r255596
2017-12-12re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on ↵Jeff Law12-24/+223
x86_64-linux-gnu) PR tree-optimization/83298 PR tree-optimization/83362 PR tree-optimization/83383 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make push_value_range a public interface. Add new argument to record_ranges_from_stmt. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::record_ranges_from_stmt): Add new argument. Update comments. Handle recording temporary equivalences. * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add new argument to call to evrp_range_analyzer::record_ranges_from_stmt. * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise. * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and gimple-ssa-evrp-analyze.h. (record_temporary_equivalences_from_phis): Add new argument. When the PHI arg is an SSA_NAME, set the result's range to the range of the PHI arg. (record_temporary_equivalences_from_stmts_at_dest): Record ranges from statements too. (thread_through_normal_block): Accept new argument, evrp_range_analyzer. Pass it down to children as needed. (thread_outgoing_edges): Likewise. (thread_across_edge): Likewise. Push/pop range state as needed. * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype. PR tree-optimization/83298 PR tree-optimization/83362 PR tree-optimization/83383 * gcc.c-torture/execute/pr83298.c: New test. * gcc.c-torture/execute/pr83362.c New test. * gcc.c-torture/execute/pr83383.c New test. From-SVN: r255593
2017-12-12re PR target/82190 (Possibly latent miscompilation issue on ↵Aaron Sawdey2-6/+28
ppc64le-linux-gnu for memcpy-bi.c with -fweb -fno-optimize-strlen) 2017-12-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> PR target/82190 * config/rs6000/rs6000-string.c (expand_block_compare, expand_strn_compare): Fix set_mem_size() calls. From-SVN: r255592
2017-12-12Remove type_dependent_init_p.Jason Merrill2-34/+7
* decl.c (value_dependent_init_p): Check the type of a CONSTRUCTOR. (type_dependent_init_p): Remove. From-SVN: r255591
2017-12-12PR c++/82115 - ICE with variable initialized with its own address.Jason Merrill5-24/+50
* cp-tree.h (struct lang_decl_base): Add dependent_init_p. (DECL_DEPENDENT_INIT_P, SET_DECL_DEPENDENT_INIT_P): New. * decl.c (cp_finish_decl): Set it. (duplicate_decls): Copy it. * pt.c (tsubst_decl): Clear it. (value_dependent_expression_p): Revert earlier change. Check it. From-SVN: r255590
2017-12-12i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.Uros Bizjak2-6/+13
* config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB. (PTA_CANNONLAKE): Remove PTA_CLWB. From-SVN: r255589
2017-12-12re PR target/83332 (new test case gfortran.dg/vect/pr81303.f fails (r255499))Bill Schmidt2-0/+61
2017-12-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/83332 * config/rs6000/vector.md (vcondv2dfv2di): New define_expand. (vcondv2div2df): Likewise. (vconduv2dfv2di): Likewise. From-SVN: r255588
2017-12-12intrinsic.texi (MAXLOC): Remove double description of return value.Thomas Koenig2-10/+14
2017-12-12 Thomas Koenig <tkoenig@gcc.gnu.org> * intrinsic.texi (MAXLOC): Remove double description of return value. (MINLOC): Likewise. From-SVN: r255587
2017-12-12builtins.def (BUILT_IN_NEXTAFTER, [...]): Use ATTR_MATHFN_ERRNO instead of ↵Jakub Jelinek2-6/+13
ATTR_MATHFN_FPROUNDING_ERRNO. * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of ATTR_MATHFN_FPROUNDING_ERRNO. From-SVN: r255586
2017-12-12PR libstdc++/83395 fix invocable traits for INVOKE<cv void>Jonathan Wakely4-14/+70
PR libstdc++/83395 * include/std/type_traits (__is_invocable_impl): Remove partial specialization for INVOKE<void> and restore is_void<R> check in primary template. (__is_nt_invocable_impl): Likewise. * testsuite/20_util/is_invocable/83395.cc: New test. * testsuite/20_util/is_nothrow_invocable/83395.cc: New test. From-SVN: r255584
2017-12-12Updated email in MAINTAINERS file.Steven Munroe1-1/+1
From-SVN: r255583
2017-12-12go-lang.c (TARGET_AIX): Define if not defined.Tony Reix2-1/+11
* go-lang.c (TARGET_AIX): Define if not defined. (go_langhook_init): Set nil_check_size_threshold to -1 on AIX. Co-Authored-By: Ian Lance Taylor <iant@golang.org> From-SVN: r255582
2017-12-12configure.ac: Remove logic adding gdb to noconfigsdirs for or1k.Stafford Horne3-14/+5
2017-12-12 Stafford Horne <shorne@gmail.com> * configure.ac: Remove logic adding gdb to noconfigsdirs for or1k. * configure: Regenerate. From-SVN: r255581
2017-12-12Fix g++.old-deja/g++.pt/const2.C on SolarisRainer Orth2-2/+8
* lib/gcc-dg.exp (process-message): Avoid additional whitespace in $expmsg. From-SVN: r255580
2017-12-12re PR tree-optimization/83385 ([graphite] Wrong code w/ -O1 ↵Richard Biener4-32/+53
-floop-nest-optimize) 2017-12-12 Richard Biener <rguenther@suse.de> PR tree-optimization/83385 * graphite-scop-detection.c (get_order, order): Remove. (bb_to_rpo): New global. (cmp_pbbs): Adjust. (build_scops): Sort pbbs in RPO order. * gcc.dg/graphite/pr83385.c: New testcase. From-SVN: r255579
2017-12-12[Patch combine] Don't create vector mode ZERO_EXTEND from subregsJames Greenhalgh2-1/+8
The code in simplify set to handle transforming the paradoxical subreg expression: (set FOO (subreg:M (mem:N BAR) 0)) in to: (set FOO (zero_extend:M (mem:N BAR))) Does not consider the case where M is a vector mode, allowing it to construct (for example): (zero_extend:V4SI (mem:SI)) For one, this has the wrong semantics - but fortunately we fail long before then in expand_compound_operation. We need to explicitly reject vector modes from this transformation. gcc/ * combine.c (simplify_set): Do not transform subregs to zero_extends if the destination mode is a vector mode. From-SVN: r255578
2017-12-12re PR c/82679 (Uses of typedefs of arrays of _Atomic-qualified types are ↵Marek Polacek4-1/+21
rejected) PR c/82679 * c-decl.c (grokdeclarator): Check declspecs insted of atomicp. * gcc.dg/c11-atomic-5.c: New test. From-SVN: r255577