aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-02-05re PR rtl-optimization/11304 (Wrong code production with -fomit-frame-pointer)Jakub Jelinek3-1/+19
PR rtl-optimization/11304 * gcc.target/i386/call-1.c (set_eax): Add "eax" clobber. * gcc.target/i386/call-2.c: New test. From-SVN: r268562
2019-02-05PR c++/89158 - by-value capture of constexpr variable broken.Marek Polacek4-1/+25
* call.c (convert_like_real) <case ck_user>: Call mark_exp_read instead of mark_rvalue_use. * g++.dg/cpp0x/lambda/lambda-89158.C: New test. From-SVN: r268561
2019-02-05compiler: check duplicate implicit indexes in slices/arraysIan Lance Taylor2-1/+8
Fixes golang/go#28186. Reviewed-on: https://go-review.googlesource.com/c/160832 From-SVN: r268554
2019-02-05Fix pr84711.c testcaseSegher Boessenkool2-1/+5
On powerpc64-linux, this testcase complains the ABI for vector args has changed, making the testcase fail (excess output). This patch shuts up that warning. * gcc.dg/vect/pr84711.c: Use -Wno-psabi. From-SVN: r268553
2019-02-05S/390: Remove load and test fp splitterAndreas Krebbel2-18/+8
gcc/ChangeLog: 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> PR target/88856 * config/s390/s390.md: Remove load and test FP splitter. From-SVN: r268550
2019-02-05re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)Aaron Sawdey2-25/+52
2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/89112 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, expand_compare_loop, expand_block_compare_gpr, expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add #include "profile-count.h" and "predict.h" for types and functions needed to work with REG_BR_PROB notes. From-SVN: r268547
2019-02-05re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)Aaron Sawdey2-2/+8
2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/89112 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label for the long branch case. From-SVN: r268546
2019-02-05vec-extract-sint128-1.c: Require int128 effective target.Jakub Jelinek3-2/+6
* gcc.target/powerpc/vec-extract-sint128-1.c: Require int128 effective target. * gcc.target/powerpc/vec-extract-uint128-1.c: Likewise. From-SVN: r268545
2019-02-05re PR target/89188 (ICE in pre_and_rev_post_order_compute, at cfganal.c:1055)Jakub Jelinek4-9/+26
PR target/89188 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they can throw, non-call exceptions are enabled and we can't delete dead exceptions or alter cfg. Set must_clean if delete_insn_and_edges returns true, don't set it blindly for calls. Assert that delete_unreachable_blocks is called only if can_alter_cfg. * g++.dg/opt/pr89188.C: New test. From-SVN: r268544
2019-02-05PR libstdc++/89194 untangle is_convertible and is_nothrow_convertibleJonathan Wakely2-19/+33
The additional logic added to __is_convertible_helper in order to support is_nothrow_convertible makes some uses of is_convertible ill-formed. This appears to be due to PR c++/87603, but can be avoided just by defining a separate helper for is_nothrow_convertible. The same problems are likely to still exist for is_nothrow_convertible, but that is new and so won't cause regressions for existing users of is_convertible. PR libstdc++/89194 * include/std/type_traits (__is_convertible_helper) (__is_convertible_helper<_From, _To, false>): Revert changes to support is_nothrow_convertible. (__is_nt_convertible_helper): New helper. (is_nothrow_convertible): Use __is_nt_convertible_helper. From-SVN: r268543
2019-02-05re PR rtl-optimization/89195 (Corrupted stack offset after combine)Jakub Jelinek4-0/+34
PR rtl-optimization/89195 * combine.c (make_extraction): For MEMs, don't extract bytes outside of the original MEM. * gcc.c-torture/execute/pr89195.c: New test. From-SVN: r268542
2019-02-05vec-extract-slong-1.c: Require p8 execution hardware.Kelvin Nilsen11-10/+24
gcc/testsuite/ChangeLog: 2019-02-05 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/vec-extract-slong-1.c: Require p8 execution hardware. * gcc.target/powerpc/vec-extract-schar-1.c: Likewise. * gcc.target/powerpc/vec-extract-sint128-1.c: Likewise. * gcc.target/powerpc/vec-extract-sshort-1.c: Likewise. * gcc.target/powerpc/vec-extract-ulong-1.c: Likewise. * gcc.target/powerpc/vec-extract-uchar-1.c: Likewise. * gcc.target/powerpc/vec-extract-sint-1.c: Likewise. * gcc.target/powerpc/vec-extract-uint128-1.c: Likewise. * gcc.target/powerpc/vec-extract-ushort-1.c: Likewise. * gcc.target/powerpc/vec-extract-uint-1.c: Likewise. From-SVN: r268541
2019-02-05re PR tree-optimization/88606 (ICE: verify_type failed (error: type variant ↵Richard Biener2-10/+17
differs by TYPE_TRANSPARENT_AGGR)) 2019-02-05 Richard Biener <rguenther@suse.de> PR c/88606 * c-decl.c (finish_struct): Reset TYPE_TRANSPARENT_AGGR on all type variants when not supported. From-SVN: r268540
2019-02-05Restore previous behaviour of testJonathan Wakely2-3/+15
Go back to using CopyConsOnlyType as before r265485, because it works again now. Add test using DelAnyAssign for completeness and additional coverage. * testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore use of CopyConsOnlyType, but also test DelAnyAssign for completeness. From-SVN: r268539
2019-02-05PR libstdc++/89130 restore support for non-MoveConstructible typesJonathan Wakely5-23/+146
The changes to "relocate" std::vector elements can lead to new errors outside the immediate context, because moving the elements to new storage no longer makes use of the move-if-noexcept utilities. This means that types with deleted moves no longer degenerate to copies, but are just ill-formed. The errors happen while instantiating the noexcept-specifier for __relocate_object_a, when deciding whether to try to relocate. This patch introduces indirections to avoid the ill-formed instantiations of std::__relocate_object_a. In order to avoid using if-constexpr prior to C++17 this is done by tag dispatching. After this patch all uses of std::__relocate_a are guarded by checks that will support sensible code (i.e. code not using custom allocators that fool the new checks). PR libstdc++/89130 * include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to __is_alloc_insertable_impl. Replace single type member with two members, one for each of copy and move insertable. (__is_move_insertable): New trait for internal use. * include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type)) (vector::_S_nothrow_relocate(true_type)): New functions to conditionally check if __relocate_a can throw. (vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based on __is_move_insertable. (vector::_S_do_relocate): New overloaded functions to conditionally call __relocate_a. (vector::_S_relocate): New function that dispatches to _S_do_relocate based on _S_use_relocate. * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert) (vector::_M_default_append): Call _S_relocate instead of __relocate_a. * testsuite/23_containers/vector/modifiers/push_back/89130.cc: New. From-SVN: r268537
2019-02-05PR libstdc++/89090 avoid C++17 features in C++11/C++14 codeJonathan Wakely3-8/+16
Although GCC and Clang both allow these features pre-C++17 in system headers, Clang does issue warnings with -Wsystem-headers. It can also complicate bisection and/or testcase reduction if # line markers are stripped, because the code won't be known to come from system headers. PR libstdc++/89090 * include/bits/stl_uninitialized.h (__relocate_a_1): Make unused parameter unnamed. Add message to static assertion. * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert) (vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr in C++11 code. From-SVN: r268536
2019-02-05GCOV: remove misleading branches and calls info for -f option (PR ↵Martin Liska2-7/+25
gcov-profile/89000). 2019-02-05 Martin Liska <mliska@suse.cz> PR gcov-profile/89000 * gcov.c (function_summary): Remove argument. (file_summary): New function. (print_usage): Replace tabs with spaces. (generate_results): Use new function file_summary. From-SVN: r268533
2019-02-05Rename __is_trivially_relocatable to __is_bitwise_relocatable.Marc Glisse3-4/+15
2019-02-05 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/87106 * include/bits/stl_uninitialized.h (__is_trivially_relocatable): Rename... (__is_bitwise_relocatable): ... to this. (__relocate_a_1): Adapt. * include/bits/stl_deque.h (__is_trivially_relocatable): Rename... (__is_bitwise_relocatable): ... to this. From-SVN: r268532
2019-02-05re PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since ↵Jakub Jelinek4-1/+18
r268138) PR target/89186 * optabs.c (prepare_cmp_insn): Pass x and y to emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). * g++.dg/ext/vector36.C: New test. From-SVN: r268531
2019-02-05re PR middle-end/89150 (Tree form bitmaps break GC)Richard Biener2-4/+12
2019-02-05 Richard Biener <rguenther@suse.de> PR middle-end/89150 * bitmap.h (struct bitmap_obstack): Do not mark GTY. (struct bitmap_element): Drop chain_prev so we properly recurse on the prev member, supporting tree views. (struct bitmap_head): GTY skip the obstack member. From-SVN: r268530
2019-02-05[PR87770] test partial specializations for type dependenceAlexandre Oliva4-1/+53
When instantiating a partial specialization of a template member function for a full specialization of a class template, we test whether the context of variables local to the partial specialization, i.e., the partial specialization itself, is dependent, and this ICEs in type_dependent_expression_p, when checking that the function type isn't type-dependent because it is not in a type-dependent scope. We shouldn't have got that far: the previous block in type_dependent_expression_p catches cases in which the function itself takes template arguments of its own, but it only did so for primary templates, not for partial specializations. This patch fixes that. for gcc/cp/ChangeLog PR c++/87770 * pt.c (instantiates_primary_template_p): New. (type_dependent_expression_p): Use it. for gcc/testsuite/ChangeLog PR c++/87770 * g++.dg/pr87770.C: New. From-SVN: r268529
2019-02-05Daily bump.GCC Administrator1-1/+1
From-SVN: r268528
2019-02-04re PR fortran/89077 (ICE using * as len specifier for character parameter)Harald Anlauf4-1/+23
2019-02-04 Harald Anlauf <anlauf@gmx.de> PR fortran/89077 * gfortran.dg/pr89077.f90: New test. 2019-02-04 Harald Anlauf <anlauf@gmx.de> PR fortran/89077 * gfortran.dg/pr89077.f90: New test. From-SVN: r268525
2019-02-04doc: showcase a "union of vectors" pattern (PR 88698)Alexander Monakov2-0/+47
PR c/88698 * doc/extend.texi (Vector Extensions): Add an example of using vector types together with x86 intrinsics. From-SVN: r268522
2019-02-04Do not dereference NULL pointer in resolve_ref (PR fortran/89185).Martin Liska2-5/+9
2019-02-04 Martin Liska <mliska@suse.cz> PR fortran/89185 * resolve.c (resolve_ref): Remove breakout variable as we need to prevent prev = &(*prev)->next to happen with *prev == NULL. From-SVN: r268521
2019-02-04[RS6000] Fix potiential buffer overflowAlan Modra2-2/+44
* config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase str[] size to 160, and comment. From-SVN: r268520
2019-02-04[RS6000] Emit inline PLT when -mno-tls-markersAlan Modra3-15/+20
I restricted output of inline PLT sequences to when TLS marker relocs were also available, which is obviously true when just considering assembler support. However, there is a -mno-tls-markers option to disable emitting the marker relocs. Currently that option also disables inline PLT sequences, which is a bug (*). This patch fixes that problem. *) To be honest, it was a deliberate bug. I didn't want to have to deal with inline PLT __tls_get_addr sequences lacking the marker relocs in the linker, but it turns out the existing linker support for old-style __tls_get_addr calls works reasonably well. * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), (rs6000_pltseq_template): Guard output of TLS markers with TARGET_TLS_MARKERS. (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv), (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding to use inline PLT sequences. * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate. From-SVN: r268519
2019-02-04Bail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88985).Martin Liska3-3/+3
gcc/ChangeLog: 2019-01-24 Martin Liska <mliska@suse.cz> PR ipa/88985 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail out when ipa_fn_summaries does not contain entry for callee. gcc/testsuite/ChangeLog: 2019-01-24 Martin Liska <mliska@suse.cz> PR ipa/88985 * gcc.dg/ipa/pr88985.c: New test. From-SVN: r268518
2019-02-04Report error when -fpre-include can't be opened (PR fortran/88912).Martin Liska2-2/+14
2019-02-04 Martin Liska <mliska@suse.cz> PR fortran/88912 * scanner.c (load_file): Report error for -fpre-include file and do not ICE. From-SVN: r268517
2019-02-04Bail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88958).Martin Liska4-0/+27
2019-02-04 Martin Liska <mliska@suse.cz> PR ipa/88958 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail out when ipa_fn_summaries does not contain entry for callee. 2019-02-04 Martin Liska <mliska@suse.cz> PR ipa/88958 * gcc.dg/ipa/pr88958.c: New test. From-SVN: r268516
2019-02-04sparc.h: Remove superfluous blank lines.Eric Botcazou3-80/+92
* config/sparc/sparc.h: Remove superfluous blank lines. * config/sparc/sparc.c (global_offset_table_rtx): Rename into... (got_register_rtx): ...this. (sparc_got): Adjust to above renaming. (sparc_tls_got): Likewise. (sparc_delegitimize_address): Likewise. (sparc_output_mi_thunk): Likewise. (sparc_init_pic_reg): Likewise. (save_local_or_in_reg_p): Fix test on the GOT register. (USE_HIDDEN_LINKONCE): Move around. (get_pc_thunk_name): Likewise. (gen_load_pcrel_sym): Likewise. (load_got_register): Likewise. From-SVN: r268514
2019-02-04inline5.c: Handle also @, ...Jakub Jelinek2-4/+9
* gcc.dg/debug/dwarf2/inline5.c: Handle also @, ; or | comment characters or extra spaces after the comment character. From-SVN: r268513
2019-02-04[NDS32] Change naming rule for dyanmic linker.Kito Cheng2-1/+24
gcc/ * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule of the dynamic linker: "ld-linux-nds32[le|be][f].so.1". From-SVN: r268512
2019-02-04contrib/dg-extract-results: Handle timeout warningsChristophe Lyon3-7/+49
2019-02-04 Christophe Lyon <christophe.lyon@linaro.org> contrib/ * dg-extract-results.py: Keep timeout warnings next to their matching test. * dg-extract-results.sh: Likewise. From-SVN: r268511
2019-02-04* g++.dg/torture/alias-1.C: New test.Jakub Jelinek2-0/+61
From-SVN: r268510
2019-02-04[NDS32] Restrict address mode, when symbol is TLS model.Chung-Ju Wu2-1/+6
gcc/ * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model into consideration. From-SVN: r268509
2019-02-04[NDS32] Remove all -mtlsdesc-trmpoline related things.Chung-Ju Wu3-10/+9
gcc/ * config.gcc (with_nds32_lib, glibc): Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting. * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete. (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete. From-SVN: r268508
2019-02-04Daily bump.GCC Administrator1-1/+1
From-SVN: r268507
2019-02-03PR c/69661 - missing -Wsequence-point warningMartin Sebor2-0/+16
gcc/testsuite.ChangeLog: * c-c++-common/Wsequence-point-2.c: New test. From-SVN: r268504
2019-02-03PR c++/44648 - missing -Wunused warning on a const variable in if statementMartin Sebor2-0/+24
gcc/testsuite/ChangeLog: * g++.dg/warn/Wunused-var-35.C: New test. From-SVN: r268503
2019-02-03re PR fortran/67679 (-Wunitialized reports on compiler-generated variables)Thomas Koenig2-4/+21
2019-02-03 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/67679 * trans-array.c (gfc_array_allocate): For setting the bounds on the new array, add a condition for a not previously allocated variable. 2019-02-03 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/67679 * gfortran.dg/warn_undefined_1.f90: New test. * gfortran.dg/coarray_lock_7.f90: Fix patterns in test. From-SVN: r268502
2019-02-03re PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for ↵Uros Bizjak2-27/+67
scalar float<->double and other scalar xmm,xmm instructions) PR target/89071 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative. Do not prefer (v,v) alternative for non-AVX targets and (m,v) alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set. (*rcpsf2_sse): Ditto. (*rsqrtsf2_sse): Ditto. (sse4_1_round<mode<2): Ditto. From-SVN: r268496
2019-02-03re PR debug/87295 ([early debug] ICE with -ffat-lto-objects ↵Richard Biener4-0/+38
-fdebug-types-section -g) 2019-02-03 Richard Biener <rguenther@suse.de> PR debug/87295 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as orig. * g++.dg/debug/dwarf2/pr87295.C: New testcase. From-SVN: r268485
2019-02-03Daily bump.GCC Administrator1-1/+1
From-SVN: r268483
2019-02-02re PR fortran/81344 (Can't disable -ffpe-trap (or not documented))Dominique d'Humieres2-0/+15
2019-02-02 Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/81344 * invoke.texi: Document the behavior of repeated -ffpe-trap and -ffpe-summary. From-SVN: r268480
2019-02-02re PR fortran/88298 (Bogus conversion warning for CSHIFT with ↵Thomas Koenig6-1/+27
-fno-range-check -m64) 2019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88298 * arith.c (gfc_int2int): Do not warn if src->do_not_warn is set. * gfortran.h (gfc_expr): Add flag do_not_warn. * intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if no warning is desired. 2019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88298 * gfortran.dg/warn_conversion_10.f90: New test. From-SVN: r268475
2019-02-02re PR fortran/88393 ([OOP] Segfault with type-bound assignment)Paul Thomas4-10/+60
2019-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/88393 * trans-expr.c (gfc_conv_procedure_call): For derived entities, passed in parentheses to class formals, invert the order of copying allocatable components to taking the _data of the class expression. 2019-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/88393 * gfortran.dg/alloc_comp_assign_16.f03 : New test. From-SVN: r268474
2019-02-02re PR fortran/88980 (segfault on allocatable string member assignment)Paul Thomas4-39/+58
2019-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/88980 * trans-array.c (gfc_array_init_size): Add element_size to the arguments. (gfc_array_allocate): Remove the recalculation of the size of the element and use element_size from the call to the above. Unconditionally set the span field of the descriptor. 2019-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/88980 * gfortran.dg/realloc_on_assign_32.f90 : New test. From-SVN: r268473
2019-02-02re PR fortran/88685 (pointer class array argument indexing)Paul Thomas4-6/+64
2019-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/88685 * expr.c (is_subref_array): Move the check for class pointer dummy arrays to after the reference check. If we haven't seen an array reference other than an element and a component is not class or derived, return false. 2019-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/88685 * gfortran.dg/pointer_array_component_3.f90 : New test. From-SVN: r268472
2019-02-01PR c++/88761 - ICE with reference capture of constant.Jason Merrill3-2/+28
Here, we capture nf, then the use of the proxy decays to a constant during semantic processing of +nf. Since we saw some decay from proxy to constant, we walk through the lambda body to see which proxies are still used, but we weren't walking into subtrees of DECL_EXPR at all, so we missed the use of &nf in the initializer of y, and removed the capture. But then at instantiation time we try to use nf, don't have a proxy anymore, and ICE. * lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for non-proxy decls. From-SVN: r268471