aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-04-24types.rst (gccjit::type::get_const): Remove comment.David Malcolm18-475/+1240
gcc_jit_type_get_aligned gcc/jit/ChangeLog: * docs/cp/topics/types.rst (gccjit::type::get_const): Remove comment. (gccjit::type::get_aligned): Add. * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7. * docs/topics/types.rst: Add gcc_jit_type_get_aligned. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-playback.c (gcc::jit::playback::type::get_aligned): New method. * jit-playback.h (gcc::jit::playback::type::get_aligned): New method. * jit-recording.c: Within namespace gcc::jit::recording... (type::get_aligned): New method. (memento_of_get_aligned::replay_into): New method. (memento_of_get_aligned::make_debug_string): New method. (memento_of_get_aligned::write_reproducer): New method. * jit-recording.h: Within namespace gcc::jit::recording... (type::get_aligned): New method. (type::accepts_writes_from): Strip off qualifications from this when comparing pointer equality. (decorated_type): New subclass of type, subsuming the commonality between memento_of_get_const and memento_of_get_volatile. (memento_of_get_const): Make a subclass of decorated_type, rather than type. (memento_of_get_volatile): Likewise. (memento_of_get_aligned): Likewise. * libgccjit++.h: Within namespace gccjit... (type::get_const): New method. (type::get_aligned): New method. * libgccjit.c (gcc_jit_type_get_aligned): New function. * libgccjit.h (gcc_jit_type_get_aligned): New decl. * libgccjit.map (LIBGCCJIT_ABI_7): New (gcc_jit_type_get_aligned): Add. gcc/testsuite/ChangeLog: * jit.dg/all-non-failing-tests.h: Add test-alignment.c. * jit.dg/test-alignment.c: New test case. * jit.dg/test-alignment.cc: New test case. * jit.dg/test-error-gcc_jit_type_get_aligned-non-power-of-two.c: New test case. From-SVN: r247111
2017-04-24decl.c (grokdeclarator): Use %qT instead of %<%T%> inVolker Reichelt4-14/+24
* decl.c (grokdeclarator): Use %qT instead of %<%T%> in * diagnostics. (start_enum): Likewise. (build_enumerator): Likewise. Use %qE instead of plain %E. * parser.c (cp_parser_mem_initializer_list): Use %qD instead of %<%D%> in diagnostics. (cp_parser_elaborated_type_specifier): Likewise. * pt.c (make_pack_expansion): Use %qT and %qE instead of %<%T%> and %<%E%> in diagnostics. (tsubst_pack_expansion): Likewise. From-SVN: r247110
2017-04-24Fix location of sizeof/alignof (PR c++/80016)David Malcolm4-4/+94
PR c++/80016 reports an issue with bizarre underlined range for a complicated expression. The root cause for the incorrect *starting* location of that range is that alignof and sizeof expressions currently have start == finish == caret at the opening parenthesis of the expression. This patch fixes this by generating appropriate start and finish locations for alignof and sizeof expressions. gcc/cp/ChangeLog: PR c++/80016 * parser.c (cp_parser_unary_expression): Generate a location range for alignof and sizeof expressions. gcc/testsuite/ChangeLog: PR c++/80016 * g++.dg/plugin/diagnostic-test-expressions-1.C (test_sizeof): New test function. (test_alignof): New test function. From-SVN: r247108
2017-04-24X /[ex] 4 < Y /[ex] 4Marc Glisse4-0/+26
2017-04-24 Marc Glisse <marc.glisse@inria.fr> gcc/ * match.pd (X/[ex]C CMP Y/[ex]C): New transformation. gcc/testsuite/ * gcc.dg/tree-ssa/cmpexactdiv-2.c: New file. From-SVN: r247107
2017-04-24parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to error message.Volker Reichelt5-5/+73
* parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to error message. (cp_parser_virt_specifier_seq_opt): Likewise. (set_and_check_decl_spec_loc): Likewise twice. * g++.dg/diagnostic/duplicate1.C: New test. * g++.dg/cpp0x/duplicate1.C: New test. From-SVN: r247105
2017-04-24[PR 80293] Dont totally-scalarize char arraysMartin Jambor4-6/+75
2017-04-24 Martin Jambor <mjambor@suse.cz> PR tree-optimization/80293 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make char arrays not totally scalarizable if it is false. (analyze_all_variable_accesses): Pass correct value in the new parameter. Add a statistics counter. testsuite/ * g++.dg/tree-ssa/pr80293.C: New test. From-SVN: r247104
2017-04-24PR libstdc++/80506 fix constant used in conditionJonathan Wakely2-1/+5
PR libstdc++/80506 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic number used in loop condition. From-SVN: r247099
2017-04-24Fix (PR middle-end/79931)Martin Liska4-1/+41
2017-04-24 Jan Hubicka <hubicka@ucw.cz> PR middle-end/79931 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE. 2017-04-24 Martin Liska <mliska@suse.cz> PR middle-end/79931 * g++.dg/ipa/pr79931.C: New test. From-SVN: r247097
2017-04-24re PR fortran/80494 (ICE in wide_int_to_tree)Richard Biener4-1/+46
2017-04-24 Richard Biener <rguenther@suse.de> PR tree-optimization/80494 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail out for complex types. * gfortran.dg/pr80494.f90: New testcase. From-SVN: r247095
2017-04-24PR libstdc++/80504 qualify calls to avoid ADLJonathan Wakely3-4/+42
PR libstdc++/80504 * include/bits/refwrap.h (ref, cref): Qualify calls. * testsuite/20_util/reference_wrapper/80504.cc: New test. From-SVN: r247094
2017-04-24PR libstdc++/80493 fix invalid exception specificationJonathan Wakely2-1/+7
PR libstdc++/80493 * include/experimental/optional (optional::swap): Fix exception specification. From-SVN: r247093
2017-04-24tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.Richard Biener4-50/+49
2017-04-24 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype. * tree-ssa-sccvn.c (print_scc): Print SCC size. (extract_and_process_scc_for_name): Never fail but drop SCC to varying. (DFS): Adjust and never fail. (sccvn_dom_walker::fail): Remove. (sccvn_dom_walker::before_dom_children): Adjust. (run_scc_vn): Likewise and never fail. * tree-ssa-pre.c (pass_pre::execute): Adjust. (pass_fre::execute): Likewise. From-SVN: r247092
2017-04-24re PR tree-optimization/79725 (Sinking opportunity missed if blocked by dead ↵Richard Biener4-8/+50
stmt) 2017-04-24 Richard Biener <rguenther@suse.de> PR tree-optimization/79725 * tree-ssa-sink.c (statement_sink_location): Return whether failure reason was zero uses. Move that check later. (sink_code_in_bb): Deal with zero uses by removing the stmt if possible. * gcc.dg/tree-ssa/ssa-sink-15.c: New testcase. From-SVN: r247091
2017-04-24re PR c++/2972 (-Wuninitialized could warn about uninitialized member ↵Richard Biener4-6/+44
variable usage in constructors) 2017-04-24 Richard Biener <rguenther@suse.de> PR c++/2972 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some pointer-based references. * g++.dg/warn/Wuninitialized-10.C: New testcase. From-SVN: r247090
2017-04-24re PR bootstrap/79814 (pass-instances.def:36:14: error: ↵Richard Biener3-16/+24
‘*<unknown>.gcc::pass_manager::pass_warn_unused_result_1’ is used uninitialized in this function) 2017-04-24 Richard Biener <rguenther@suse.de> PR bootstrap/79814 * pass_manager.h (pass_manager::operator new): Remove. (pass_manager::operator delete): Likewise. * passes.c (pass_manager::operator new): Remove. (pass_manager::operator delete): Likewise. (pass_manager::pass_manager): Zero individual pass members. From-SVN: r247089
2017-04-24Daily bump.GCC Administrator1-1/+1
From-SVN: r247088
2017-04-23re PR fortran/80484 (Three syntax errors involving derived-type I/O)Jerry DeLisle5-48/+118
2017-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/80484 * io.c (format_lex): Check for '/' and set token to FMT_SLASH. (check_format): Move FMT_DT checking code to data_desc section. * module.c (gfc_match_use): Include the case of INTERFACE_DTIO. PR fortran/80484 * gfortran.dg/dtio_29.f03: New test. From-SVN: r247084
2017-04-23re PR fortran/80121 (Memory leak with derived-type intent(out) argument)Janus Weil4-0/+49
2017-04-22 Janus Weil <janus@gcc.gnu.org> PR fortran/80121 * trans-types.c (gfc_conv_procedure_call): Deallocate the components of allocatable intent(out) arguments. 2017-04-22 Janus Weil <janus@gcc.gnu.org> PR fortran/80121 * gfortran.dg/intent_out_9.f90: New test case. From-SVN: r247083
2017-04-23re PR target/70799 (STV pass does not convert DImode shifts)Uros Bizjak4-23/+173
PR target/70799 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) <case ASHIFT, case LSHIFTRT>: Also consider variable shifts. Check "XEXP (src, 1)" operand here. <case PLUS, case MINUS, case IOR, case XOR, case AND>: Check "XEXP (src, 1)" operand here. (dimode_scalar_chain::make_vector_copies): Detect count register of a shift instruction. Zero extend count register from QImode to DImode to satisfy vector shift pattern count operand predicate. Substitute vector shift count operand with a DImode copy. (dimode_scalar_chain::convert_reg): Ditto, zero-extend from vector register. testsuite/ChangeLog: PR target/70799 * gcc.target/i186/pr70799-4.c: New test. From-SVN: r247082
2017-04-23Daily bump.GCC Administrator1-1/+1
From-SVN: r247081
2017-04-22Daily bump.GCC Administrator1-1/+1
From-SVN: r247075
2017-04-21re PR fortran/80392 ([OOP] ICE with allocatable polymorphic function result ↵Janus Weil4-3/+37
in a procedure pointer component) 2017-04-21 Janus Weil <janus@gcc.gnu.org> PR fortran/80392 * trans-types.c (gfc_get_derived_type): Prevent an infinite loop when building a derived type that includes a procedure pointer component with a polymorphic result. 2017-04-21 Janus Weil <janus@gcc.gnu.org> PR fortran/80392 * gfortran.dg/proc_ptr_comp_49.f90: New test case. From-SVN: r247069
2017-04-21PR c++/80179 - ICE with initialized flexible array member.Jason Merrill3-2/+27
* constexpr.c (verify_ctor_sanity): Handle flexible array members. From-SVN: r247067
2017-04-21i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.Uros Bizjak2-41/+42
* config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>. Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. (UNSPEC_NOREX_MEM): Remove definition. From-SVN: r247066
2017-04-21pr79804.c: Add additional dg-error directive.Uros Bizjak2-1/+5
* gcc.target/i386/pr79804.c: Add additional dg-error directive. From-SVN: r247065
2017-04-21PR libstdc++/80316 make promise::set_value throw no_state errorJonathan Wakely6-29/+740
PR libstdc++/80316 * include/std/future (_State_baseV2::_Setter::operator()): Remove _S_check calls that are done after the pointer to the shared state is already dereferenced. (_State_baseV2::_Setter<_Res, void>): Define specialization for void as partial specialization so it can be defined within the definition of _State_baseV2. (_State_baseV2::__setter): Call _S_check. (_State_baseV2::__setter(promise<void>*)): Add overload for use by promise<void>::set_value and promise<void>::set_value_at_thread_exit. (promise<T>, promise<T&>, promise<void>): Make _State a friend. (_State_baseV2::_Setter<void, void>): Remove explicit specialization. (promise<void>::set_value, promise<void>::set_value_at_thread_exit): Use new __setter overload. * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test. * testsuite/30_threads/promise/members/set_exception.cc: Test promise<T&> and promise<void> specializations. * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. Test for no_state error condition. * testsuite/30_threads/promise/members/set_value2.cc: Likewise. From-SVN: r247064
2017-04-21Avoid deprecated warnings about std::auto_ptr in library headersJonathan Wakely9-5/+48
* include/backward/auto_ptr.h: Ignore deprecated warnings from use of auto_ptr. * include/bits/shared_ptr.h: Likewise. * include/bits/shared_ptr_base.h: Likewise. * include/bits/unique_ptr.h: Likewise. * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error lineno. * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise. * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise. * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise. From-SVN: r247063
2017-04-21re PR tree-optimization/79547 (duplicate strlen calls with same argument not ↵Richard Biener4-0/+62
folded) 2017-04-21 Richard Biener <rguenther@suse.de> PR tree-optimization/79547 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp, bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p without any constraints. * gcc.dg/tree-ssa/strlen-2.c: New testcase. From-SVN: r247062
2017-04-21re PR tree-optimization/78847 (pointer arithmetic from c++ ranged-based for ↵Richard Biener4-2/+41
loop not optimized) 2017-04-21 Richard Biener <rguenther@suse.de> PR tree-optimization/78847 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR. * g++.dg/tree-ssa/pr78847.C: New testcase. From-SVN: r247061
2017-04-21* es.po, fr.po: Update.Joseph Myers3-434/+333
From-SVN: r247059
2017-04-21libiberty: Limit demangler maximum d_print_comp recursion call depth.Mark Wielaard2-3/+19
The fix for PR demangler/70909 and 67264 (endless demangler recursion) catches when a demangle_component is printed in a cycle. But that doesn't protect the call stack blowing up from non-cyclic nested types printed recursively through d_print_comp. This can happen by a (very) long mangled string that simply creates a very deep pointer or qualifier chain. Limit the recursive d_print_comp call depth for a d_print_info to 1K nested types. libiberty/ChangeLog: * cp-demangle.c (MAX_RECURSION_COUNT): New constant. (struct d_print_info): Add recursion field. (d_print_init): Initialize recursion. (d_print_comp): Check and update d_print_info recursion depth. From-SVN: r247056
2017-04-21libiberty: Always return NULL if d_add_substitution fails.Mark Wielaard2-1/+7
d_add_substitution can fail for various reasons, like when the subs array is full. If d_add_substitution fails d_substitution should return NULL early and not try to continue. Every other call of d_add_substitution is handled in the same way. libiberty/ChangeLog: * cp-demangle.c (d_substitution): Return NULL if d_add_substitution fails. From-SVN: r247055
2017-04-21libiberty: Don't update and remove did_subs field from demangler structs.Mark Wielaard3-12/+10
The d_info field did_subs was used for estimating the string output size. It was no longer used when the malloc-less callback interface was introduced in 2007 (svn r121305). But the field was still updated. When backtracking was introduced in 2013 (svn r205292) did_subs was also added to the d_info_checkpoint struct. But except for updating the field it was still not used. Since it is never used just stop updating the field and remove it from the two structs. libiberty/ChangeLog: * cp-demangle.h (struct d_info): Remove did_subs field. * cp-demangle.c (struct d_info_checkpoint): Likewise. (d_template_param): Don't update did_subs. (d_substitution): Likewise. (d_checkpoint): Don't assign did_subs. (d_backtrack): Likewise. (cplus_demangle_init_info): Don't initialize did_subs. From-SVN: r247054
2017-04-21tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.Richard Biener6-15/+31
2017-04-21 Richard Biener <rguenther@suse.de> * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO. (build_distinct_type_copy): Likewise. (build_variant_type_copy): Likewise. * tree.c (build_qualified_type): Pass down mem-stat info. (build_distinct_type_copy): Likewise. (build_variant_type_copy): Likewise. cp/ * cp-tree.h (copy_decl): Annotate with CXX_MEM_STAT_INFO. (copy_type): Likewise. * lex.c (copy_decl): Pass down mem-stat info. (copy_type): Likewise. From-SVN: r247053
2017-04-21re PR c/80468 (ICE on invalid AVX512 code with -m32)Jakub Jelinek4-3/+27
PR c/80468 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not enabled, set specs->type to integer_type_node. * gcc.dg/pr80468.c: New test. From-SVN: r247052
2017-04-21Add test-case (PR tree-optimization/66278).Martin Liska2-0/+24
2017-04-21 Martin Liska <mliska@suse.cz> PR tree-optimization/66278 * gcc.dg/vect/pr66278.c: New test. From-SVN: r247051
2017-04-21re PR tree-optimization/80237 (float to double conversion is not optimized away)Richard Biener5-10/+53
2017-04-21 Richard Biener <rguenther@suse.de> PR tree-optimization/80237 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument, defaulted to NULL. (phi_translate_1): Also allow a leader in AVAIL_OUT of pred for a simplified result. * gcc.dg/tree-ssa/tailcall-9.c: New testcase. * gcc.dg/tree-ssa/ldist-pr45948.c: Remove undefined behavior, adjust expected optimizations. From-SVN: r247049
2017-04-21tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require sth as ↵Richard Biener6-9/+24
strict as a simple_iv but a chrec without symbols and an... 2016-04-21 Richard Biener <rguenther@suse.de> * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require sth as strict as a simple_iv but a chrec without symbols and an operand defined in the loop we are peeling (and not some subloop). (propagate_constants_for_unrolling): Propagate all constants. * gcc.dg/vect/no-scevccp-outer-13.c: Adjust to prevent unrolling of inner loops. * gcc.dg/vect/no-scevccp-outer-7.c: Likewise. * gcc.dg/vect/vect-104.c: Likewise. From-SVN: r247048
2017-04-21re PR tree-optimization/80426 (wrong manipulation of range based on INT_MIN)Eric Botcazou2-0/+6
PR tree-optimization/80426 * gcc.c-torture/execute/20170429-1.c: Rename into... * gcc.c-torture/execute/20170419-1.c: ...this. From-SVN: r247046
2017-04-21Daily bump.GCC Administrator1-1/+1
From-SVN: r247045
2017-04-20re PR target/79804 (ICE in print_reg, at config/i386/i386.c:17637)Uros Bizjak4-6/+31
PR target/79804 * config/i386/i386.c (print_reg): Remove assert for disalowed regno values, call output_operand_lossage instead. testsuite/ChangeLog: PR target/79804 * gcc.target/i386/pr79804.c: New test. From-SVN: r247037
2017-04-20re PR target/78090 ([x86_64]: GCC allows integer register for inter unit ↵Uros Bizjak5-41/+19
conversion under -mtune-ctrl=^inter_unit_conversions .) PR target/78090 * config/i386/constraints.md (Yc): New register constraint. * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): Use Yc constraint for alternative 2 of operand 0. Remove preferred_for_speed attribute. testsuite/ChangeLog: PR target/78090 * gcc.target/i386/conversion-2.c: Remove obsolete test. From-SVN: r247036
2017-04-20* g++/opt/pr80436.C: XFAIL on AIX.David Edelsohn2-0/+5
From-SVN: r247034
2017-04-20PR c++/80473 allow suppressing notes about over-aligned newJonathan Wakely4-7/+36
gcc/cp: PR c++/80473 * init.c (build_new_1): Suppress notes about over-aligned new when the warning is suppressed. gcc/testsuite: PR c++/80473 * g++.dg/diagnostic/pr80473.C: New test. From-SVN: r247033
2017-04-20omp-low: fix lastprivate/linear lowering for SIMTAlexander Monakov4-21/+47
gcc/ * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and lastprivate clauses in SIMT case. libgomp/ * testsuite/libgomp.c/target-36.c: New testcase. From-SVN: r247029
2017-04-20c.opt (Wextra-semi): New C++ warning flag.Volker Reichelt8-2/+62
* c.opt (Wextra-semi): New C++ warning flag. * doc/invoke.texi (-Wextra-semi): Document new warning option. * parser.c (cp_parser_member_declaration): Add warning with fixit information for extra semicolon after in-class function definition. * g++.dg/warn/Wextra-semi.C: New test. From-SVN: r247028
2017-04-20PR libstdc++/68397 std::tr1::expint fails ... long double arguments.Edward Smith-Rowland4-3/+104
2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net> PR libstdc++/68397 std::tr1::expint fails ... long double arguments. * include/tr1/exp_integral.tcc: Increase iteration limits. * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/ pr68397.cc: New test. * testsuite/special_functions/14_expint/pr68397.cc: New test. From-SVN: r247027
2017-04-20re PR target/57796 (AVX2 gather vectorization: code bloat and reduction of ↵Richard Biener2-2/+11
performance) 2017-04-20 Richard Biener <rguenther@suse.de> PR tree-optimization/57796 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters as N scalar stores. (vect_model_load_cost): Cost gathers as N scalar loads. From-SVN: r247026
2017-04-20ggc-page.c (ggc_allocated_p): Rename to ...Richard Biener2-10/+21
2017-04-20 Richard Biener <rguenther@suse.de> * ggc-page.c (ggc_allocated_p): Rename to ... (safe_lookup_page_table_entry): ... this and return the lookup result. (gt_ggc_m_S): Use safe_lookup_page_table_entry. From-SVN: r247025
2017-04-20re PR debug/80453 (another compare-debug failure)Richard Biener3-10/+39
2017-04-20 Richard Biener <rguenther@suse.de> PR tree-optimization/80453 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members. * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs from the conditions. (vn_phi_eq): Pass them down. (vn_phi_lookup): Record them. (vn_phi_insert): Likewise. From-SVN: r247024