- 15 Dec, 2017 9 commits
-
-
From-SVN: r255684
Pierre-Marie de Rodat committed -
gcc/ada/ 2017-12-15 Ed Schonberg <schonberg@adacore.com> * exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is a generic package body. Unnesting is only an issue when generating code, and if the main unit is generic then nested instance bodies have not been created and analyzed, and unnesting will crash in the absence of those bodies, 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> * inline.adb (Add_Inlined_Body): Do not add a function which is completed by an expression function defined in the same context as the initial declaration because the completing body is not in a package body. (Is_Non_Loading_Expression_Function): New routine. 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> * debug.adb: Move the functionality of -gnatdL to -gnatd_i. Restore the behavior of -gnatdL from before revision 255412. * sem_elab.adb: Update the section of compiler switches. (Build_Call_Marker): Do not create a marker for a call which originates from an expanded spec or body of an instantiated gener, does not invoke a generic formal subprogram, the target is external to the instance, and -gnatdL is in effect. (In_External_Context): New routine. (Process_Conditional_ABE_Activation_Impl): Update the uses of -gnatdL and associated flag. (Process_Conditional_ABE_Call): Update the uses of -gnatdL and associated flag. * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch -gnatd_i. * exp_unst.adb: Minor typo fixes and edits. 2017-12-15 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Possible_Freeze): Do not set Delayed_Freeze on an subprogram instantiation, now that the enclosing wrapper package carries an explicit freeze node. THis prevents freeze nodes for the subprogram for appearing in the wrong scope. This is relevant when the generic subprogram has a private or incomplete formal type and the instance appears within a package that declares the actual type for the instantiation, and that type has itself a delayed freeze. 2017-12-15 Patrick Bernardi <bernardi@adacore.com> * doc/gnat_ugn/gnat_and_program_execution.rst: Removed references to the environment variable GNAT_STACK_LIMIT from the Stack Overflow Checking section as it is no longer used by any of our supported targets. gcc/testsuite/ 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> * gnat.dg/expr_func_main.adb, gnat.dg/expr_func_pkg.ads, gnat.dg/expr_func_pkg.adb: New testcase. 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> * gnat.dg/abe_pkg.adb, gnat.dg/abe_pkg.ads: New testcase. 2017-12-15 Ed Schonberg <schonberg@adacore.com> * gnat.dg/subp_inst.adb, gnat.dg/subp_inst_pkg.adb, gnat.dg/subp_inst_pkg.ads: New testcase. From-SVN: r255683
Pierre-Marie de Rodat committed -
2017-12-15 Bob Duff <duff@adacore.com> * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the Init_Assignment is rewritten, we need to set Assignment_OK on the new node. Otherwise, we will get spurious errors when initializing via assignment statement. 2017-12-15 Arnaud Charlet <charlet@adacore.com> * exp_unst.adb (Visit_Node): Refine handling of 'Access to ignore non relevant nodes. (Has_Non_Null_Statements): Moved to sem_util for later reuse. 2017-12-15 Eric Botcazou <ebotcazou@adacore.com> * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment. * libgnat/s-fatgen.adb (Model): Use Machine attribute. (Truncation): Likewise. 2017-12-15 Bob Duff <duff@adacore.com> * exp_ch7.adb (Expand_Cleanup_Actions): Make sure the block and handled statement sequence generated for certain extended return statements have a Sloc that is not No_Location. Otherwise, the back end doesn't set any location and ends up reading uninitialized variables. From-SVN: r255680
Pierre-Marie de Rodat committed -
2017-12-15 Bob Duff <duff@adacore.com> * types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert r255414, committed by mistake. From-SVN: r255679
Bob Duff committed -
gcc/ * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi, __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New. * config/i386/sse.md (vaesenclast_<mode>): New pattern. * config/i386/vaesintrin.h (_mm256_aesenclast_epi128, _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics. gcc/testsuite/ * gcc.target/i386/avx512f-aesenclast-2.c: New test. * gcc.target/i386/avx512vl-aesenclast-2.c: Ditto. * gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics. From-SVN: r255676
Julia Koval committed -
gcc/ * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi, __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New. * config/i386/sse.md (vaesenc_<mode>): New pattern. * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128, _mm_aesenc_epi128): New intrinsics. gcc/testsuite/ * gcc.target/i386/avx512f-aesenc-2.c: New test. * gcc.target/i386/avx512vl-aesenc-2.c: Ditto. * gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics. From-SVN: r255675
Julia Koval committed -
gcc/ * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi, __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New. * config/i386/sse.md (vaesdeclast_<mode>): New pattern. * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128, _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics. gcc/testsuite/ * gcc.target/i386/avx512f-aesdeclast-2.c: New test. * gcc.target/i386/avx512vl-aesdeclast-2.c * gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics. From-SVN: r255674
Julia Koval committed -
From-SVN: r255673
Peter Bergner committed -
From-SVN: r255670
GCC Administrator committed
-
- 14 Dec, 2017 31 commits
-
-
PR libstdc++/83279 * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not copying entire file. From-SVN: r255666
Jonathan Wakely committed -
PR libstdc++/68519 * include/std/condition_variable (condition_variable::wait_for): Convert duration to native clock's duration before addition. * testsuite/30_threads/condition_variable/members/68519.cc: New test. From-SVN: r255665
Jonathan Wakely committed -
gimple-ssa-strength-reduction.c (analyze_increments): Distinguish replacement costs for constant strides from those for unknown strides. 2017-12-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gimple-ssa-strength-reduction.c (analyze_increments): Distinguish replacement costs for constant strides from those for unknown strides. From-SVN: r255664
Bill Schmidt committed -
From-SVN: r255663
Jakub Jelinek committed -
gcc: 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * doc/invoke.texi: Document -Wcast-function-type. * recog.h (stored_funcptr): Change signature. * tree-dump.c (dump_node): Avoid warning. * typed-splay-tree.h (typed_splay_tree): Avoid warning. libcpp: 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * internal.h (maybe_print_line): Change signature. c-family: 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * c.opt (Wcast-function-type): New warning option. * c-lex.c (get_fileinfo): Avoid warning. * c-ppoutput.c (scan_translation_unit_directives_only): Remove cast. c: 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-typeck.c (c_safe_arg_type_equiv_p, c_safe_function_type_cast_p): New function. (build_c_cast): Implement -Wcast-function-type. cp: 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * decl2.c (start_static_storage_duration_function): Avoid warning. * typeck.c (cxx_safe_arg_type_equiv_p, cxx_safe_function_type_cast_p): New function. (build_reinterpret_cast_1): Implement -Wcast-function-type. testsuite: 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-c++-common/Wcast-function-type.c: New test. * g++.dg/Wcast-function-type.C: New test. From-SVN: r255661
Bernd Edlinger committed -
2017-12-14 Steve Ellcey <sellcey@cavium.com> * Makefile.am (IFUNC_OPTIONS): Change aarch64 option from -march=armv8.1-a to -march=armv8-a+lse. * configure.ac (*aarch64*): Check to see if compiler understands -march=armv8-a+lse option. * configure.tgt (*aarch64*): Only set try_ifunc if compiler understands -march=armv8-a+lse option. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * configure: Regenerate. * aclocal.m4: Regenerate. From-SVN: r255659
Steve Ellcey committed -
missing -Wformat-overflow with %s and non-member array arguments -Wformat-overflow uses the routine "get_range_strlen" to decide the maximum string length, however, currently "get_range_strlen" misses the handling of non-member arrays. Adding the handling of non-member array resolves the issue. Adding test case pr79538.c into gcc.dg. During gcc bootstrap, 2 source files (c-family/c-cppbuiltin.c, fortran/class.c) were detected new warnings by -Wformat-overflow due to the new handling of non-member array in "get_range_strlen". in order to avoid these new warnings and continue with bootstrap, updating these 2 files to avoid the warnings. in c-family/c-cppbuiltin.c, the warning is following: ../../latest_gcc_2/gcc/c-family/c-cppbuiltin.c:1627:15: note: ‘sprintf’ output 2 or more bytes (assuming 257) into a destination of size 256 sprintf (buf1, "%s=%s", macro, buf2); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ in the above, buf1 and buf2 are declared as: char buf1[256], buf2[256]; i.e, buf1 and buf2 have same size. adjusting the size of buf1 and buf2 resolves the warning. fortran/class.c has the similar issue as above. Instead of adjusting size of the buffers, replacing sprintf with xasprintf is a better solution for these cases. From-SVN: r255654
Qing Zhao committed -
From-SVN: r255653
Eric Botcazou committed -
PR libstdc++/83427 * include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here from <bits/std_function.h>. (_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>. (_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept for function types. Remove partial specializations for member functions. (_Weak_result_type_impl): Remove unused partial specializations for non-referenceable function types and for references to functions. (_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New helpers to handle member functions via _Mem_fn_traits. (_Weak_result_type, reference_wrapper): Derive from new helpers. * include/bits/std_function.h (_Maybe_unary_or_binary_function): Move to <bits/refwrap.h>. * include/std/functional (_Pack, _AllConvertible, _NotSame): Remove. (_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>. * testsuite/20_util/bind/83427.cc: New test. * testsuite/20_util/bind/refqual.cc: Add noexcept to functions and check for weak result types. * testsuite/20_util/reference_wrapper/83427.cc: New test. From-SVN: r255651
Jonathan Wakely committed -
From-SVN: r255650
Eric Botcazou committed -
gcc/ChangeLog: PR tree-optimization/83312 * domwalk.h (dom_walker::dom_walker): Fix typo in comment. * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for "val" param, and to cope with arbitrary basic blocks. (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to handle NULL_TREE for "val", dropping "bb" param. (find_taken_edge_switch_expr): Make "switch_stmt" param const and drop "bb" param. Handle NULL_TREE for "val". (find_case_label_for_value): Make "switch_stmt" param const. * tree-vrp.c (class check_array_bounds_dom_walker): New subclass of dom_walker. (vrp_prop::check_all_array_refs): Reimplement as... (check_array_bounds_dom_walker::before_dom_children): ...this new vfunc. Replace linear search through BB block list, excluding those with non-executable in-edges via dominator walk. gcc/testsuite/ChangeLog: PR tree-optimization/83312 * gcc.dg/pr83312.c: New test case. From-SVN: r255649
David Malcolm committed -
trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS to 0 on the callee if the call is recursive. * gcc-interface/trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS to 0 on the callee if the call is recursive. From-SVN: r255648
Eric Botcazou committed -
decl.c (gnat_to_gnu_field): Do not set the alignment of the enclosing record type if it is not already set. * gcc-interface/decl.c (gnat_to_gnu_field): Do not set the alignment of the enclosing record type if it is not already set. From-SVN: r255645
Eric Botcazou committed -
This patch adds an -mverbose-cost-dump option, similar to the one in aarch64. It makes the RTX cost dump print the RTX we're costing in the backend, as well as its cost. This can be distracting in other cost-related RTL dumps like combine's. So now we don't dump the backend information by default, but provide the power-user option -mverbose-cost-dump to enable the old verbose dumping. This option is for GCC developers debugging the compiler only, so no documentation are added. It's also trivially simple in functionality so no test is added either. Bootstrapped and tested on arm-none-linux-gnueabihf. Committed to trunk. * config/arm/arm.opt (mverbose-cost-dump): New option. * config/arm/arm.c (arm_rtx_costs): Use it. From-SVN: r255644
Kyrylo Tkachov committed -
PR lto/81406 * gcc.dg/lto/pr81406_0.c: New test. From-SVN: r255643
Jakub Jelinek committed -
2017-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/66974 * gcc.dg/Warray-bounds-24.c: New testcase. From-SVN: r255642
Richard Biener committed -
2017-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/65258 * gcc.dg/Warray-bounds-23.c: New testcase. From-SVN: r255641
Richard Biener committed -
PR bootstrap/83396 * reload1.c (emit_input_reload_insns): Skip debug markers. From-SVN: r255640
Andreas Schwab committed -
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
Alexandre Oliva committed -
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
Alexandre Oliva committed -
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
Tom de Vries committed -
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
Richard Biener committed -
re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance 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
Richard Biener committed -
* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc: Add tests using noskipws. From-SVN: r255632
Jonathan Wakely committed -
* 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
Eric Botcazou committed -
* 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
Jonathan Wakely committed -
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
Richard Biener committed -
re PR tree-optimization/83418 (ICE in 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
Richard Biener committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
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
Sudakshina Das committed
-