- 31 Jul, 2018 38 commits
-
-
This patch adds a vec_info function for allocating and setting stmt_vec_infos. It's the start of a long process of removing the global stmt_vec_info array. 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vectorizer.h (stmt_vec_info): Move typedef earlier in file. (vec_info::add_stmt): Declare. * tree-vectorizer.c (vec_info::add_stmt): New function. * tree-vect-data-refs.c (vect_create_data_ref_ptr): Use it. * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. (vectorizable_induction): Likewise. * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. (vectorizable_simd_clone_call, vectorizable_store): Likewise. (vectorizable_load): Likewise. * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. (vect_recog_bool_pattern, vect_recog_mask_conversion_pattern) (vect_recog_gather_scatter_pattern): Likewise. (append_pattern_def_seq): Likewise. Remove a check that is performed by add_stmt itself. From-SVN: r263121
Richard Sandiford committed -
The usual vectoriser dance to create new assignments is: new_stmt = gimple_build_assign (vec_dest, ...); new_temp = make_ssa_name (vec_dest, new_stmt); gimple_assign_set_lhs (new_stmt, new_temp); but one site in vectorizable_reduction used: new_temp = make_ssa_name (vec_dest, new_stmt); before creating new_stmt. This method of creating statements probably needs cleaning up, but that's for another day... 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vectorizable_reduction): Fix an instance in which make_ssa_name was called with new_stmt before new_stmt had been created. From-SVN: r263120
Richard Sandiford committed -
vect_is_slp_reduction and vect_is_simple_reduction had two instances each of: && (is_gimple_assign (def_stmt) || is_gimple_call (def_stmt) || STMT_VINFO_DEF_TYPE (vinfo_for_stmt (def_stmt)) == vect_induction_def || (gimple_code (def_stmt) == GIMPLE_PHI && STMT_VINFO_DEF_TYPE (vinfo_for_stmt (def_stmt)) == vect_internal_def && !is_loop_header_bb_p (gimple_bb (def_stmt))))) This patch splits it out in a subroutine. 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vect_valid_reduction_input_p): New function, split out from... (vect_is_slp_reduction): ...here... (vect_is_simple_reduction): ...and here. Remove repetition of tests that are already known to be false. From-SVN: r263119
Richard Sandiford committed -
vect_free_slp_tree had: gimple *stmt; FOR_EACH_VEC_ELT (SLP_TREE_SCALAR_STMTS (node), i, stmt) /* After transform some stmts are removed and thus their vinfo is gone. */ if (vinfo_for_stmt (stmt)) { gcc_assert (STMT_VINFO_NUM_SLP_USES (vinfo_for_stmt (stmt)) > 0); STMT_VINFO_NUM_SLP_USES (vinfo_for_stmt (stmt))--; } But after transform this update is redundant even for statements that do exist, so it seems better to skip this loop for the final teardown. 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vectorizer.h (vect_free_slp_instance): Add a final_p parameter. * tree-vect-slp.c (vect_free_slp_tree): Likewise. Don't update STMT_VINFO_NUM_SLP_USES when it's true. (vect_free_slp_instance): Add a final_p parameter and pass it to vect_free_slp_tree. (vect_build_slp_tree_2): Update call to vect_free_slp_instance. (vect_analyze_slp_instance): Likewise. (vect_slp_analyze_operations): Likewise. (vect_slp_analyze_bb_1): Likewise. * tree-vectorizer.c (vec_info): Likewise. * tree-vect-loop.c (vect_transform_loop): Likewise. From-SVN: r263118
Richard Sandiford committed -
vectorizable_reduction has old code to cope with cases in which the given statement belongs to a reduction group but isn't the first statement. That can no longer happen, since all statements in the group go into the same SLP node, and we only check the first statement in each node. The point is to remove the only path through vectorizable_reduction in which stmt and stmt_info refer to different statements. 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vectorizable_reduction): Assert that the function is not called for second and subsequent members of a reduction group. From-SVN: r263117
Richard Sandiford committed -
This minor clean-up avoids repeating the test for double reductions and also moves the vect_get_vec_def_for_operand call to the same function as the corresponding vect_get_vec_def_for_stmt_copy. 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (get_initial_def_for_reduction): Move special cases for nested loops from here to ... (vect_create_epilog_for_reduction): ...here. Only call vect_is_simple_use for inner-loop reductions. From-SVN: r263116
Richard Sandiford committed -
P1008R1 - prohibit aggregates with user-declared constructors * class.c (check_bases_and_members): For C++2a set CLASSTYPE_NON_AGGREGATE based on TYPE_HAS_USER_CONSTRUCTOR rather than type_has_user_provided_or_explicit_constructor. * g++.dg/ext/is_aggregate.C: Add tests with deleted or defaulted ctor. * g++.dg/cpp0x/defaulted1.C (main): Ifdef out for C++2a B b = {1};. * g++.dg/cpp0x/deleted2.C: Expect error for C++2a. * g++.dg/cpp2a/aggr1.C: New test. * g++.dg/cpp2a/aggr2.C: New test. From-SVN: r263115
Jakub Jelinek committed -
gcc/testsuite/ PR target/86640 * gcc.target/arm/pr86640.c: New testcase. From-SVN: r263114
Segher Boessenkool committed -
2018-07-31 Martin Liska <mliska@suse.cz> PR gcov-profile/85338 PR gcov-profile/85350 PR gcov-profile/85372 * profile.c (struct location_triplet): New. (struct location_triplet_hash): Likewise. (output_location): Do not output a BB that is already recorded for a line. (branch_prob): Use streamed_locations. 2018-07-31 Martin Liska <mliska@suse.cz> PR gcov-profile/85338 PR gcov-profile/85350 PR gcov-profile/85372 * gcc.misc-tests/gcov-pr85338.c: New test. * gcc.misc-tests/gcov-pr85350.c: New test. * gcc.misc-tests/gcov-pr85372.c: New test. From-SVN: r263113
Martin Liska committed -
2018-07-31 Martin Liska <mliska@suse.cz> PR gcov-profile/85370 * coverage.c (coverage_begin_function): Do not mark target clones as artificial functions. From-SVN: r263112
Martin Liska committed -
2018-07-31 Martin Liska <mliska@suse.cz> PR gcov-profile/83813 PR gcov-profile/84758 PR gcov-profile/85217 PR gcov-profile/85332 * profile.c (branch_prob): Do not record GOTO expressions for GIMPLE statements which locations are already streamed. 2018-07-31 Martin Liska <mliska@suse.cz> PR gcov-profile/83813 PR gcov-profile/84758 PR gcov-profile/85217 PR gcov-profile/85332 * gcc.misc-tests/gcov-pr83813.c: New test. * gcc.misc-tests/gcov-pr84758.c: New test. * gcc.misc-tests/gcov-pr85217.c: New test. * gcc.misc-tests/gcov-pr85332.c: New test. From-SVN: r263111
Martin Liska committed -
2018-07-31 Martin Liska <mliska@suse.cz> PR c++/86653 * parser.c (cp_parser_condition): Initialize non_constant_p to false. From-SVN: r263110
Martin Liska committed -
2018-07-31 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * clean.adb, gnatchop.adb, gnatfind.adb, gnatls.adb, gnatmake.ads, gnatxref.adb, make.adb, make.ads, make_util.ads, sfn_scan.adb, vxaddr2line.adb, xeinfo.adb, xoscons.adb, xr_tabls.adb, xref_lib.adb: Address CodePeer messages. From-SVN: r263108
Arnaud Charlet committed -
2018-07-31 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * gnatlink.adb: Fix potential Constraint_Error if Library_Version is too long. From-SVN: r263107
Arnaud Charlet committed -
2018-07-31 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_elab.adb: Remove duplicate condition detected by CodePeer. From-SVN: r263106
Arnaud Charlet committed -
2018-07-31 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Subp_Index): In the case of a protected operation, the relevant entry is the generated protected_subprogram_body into which the original body is rewritten. Assorted cleanup and optimizations. From-SVN: r263105
Ed Schonberg committed -
2018-07-31 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_attr.adb (Expand_Attribute, case Fixed_Value): Set the base type of the result to ensure that proper overflow and range checks are generated. If the target is a fixed-point tyoe, generate the required overflow and range checks explicitly, rather than relying on Apply_Type_Conversion_Checks, which might simply set the Do_Range_Check flag and rely on the backend to add the check. From-SVN: r263104
Ed Schonberg committed -
This patch modifies call resolution to recognize when the designated type of an access-to-subprogram requires secondary stack management, and establish the proper transient block. ------------ -- Source -- ------------ -- leak7.adb procedure Leak7 is Max_Iterations : constant := 10_000; function Func return String is begin return "Will this leak? Or will it dry?"; end Func; type Func_Ptr is access function return String; procedure Anonymous_Leak (Func : access function return String) is begin for Iteration in 1 .. Max_Iterations loop declare Val : constant String := Func.all; begin null; end; end loop; end Anonymous_Leak; procedure Named_Leak (Func : Func_Ptr) is begin for Iteration in 1 .. Max_Iterations loop declare Val : constant String := Func.all; begin null; end; end loop; end Named_Leak; begin Anonymous_Leak (Func'Access); Named_Leak (Func'Access); end Leak7; ---------------------------- -- Compilation and output -- ---------------------------- $ gnatmake -q leak7.adb $ valgrind ./leak7 >& leak7.txt $ grep -c "still reachable" leak7.txt 0 2018-07-31 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Call): Establish a transient scope to manage the secondary stack when the designated type of an access-to-subprogram requires it. From-SVN: r263103
Hristian Kirtchev committed -
2018-07-31 Ed Schonberg <schonberg@adacore.com> gcc/ada * exp_ch7.adb (Check_Unnesting_Elaboration_Code): To find local subprograms in the elaboration code for a package body, recurse through nested statement sequences because a compiler-generated procedure may appear within a condition statement. From-SVN: r263102
Ed Schonberg committed -
This patch fixes a spurious compiler error on a call to a protected operation whose profile includes a defaulted in-parameter that is a call to another protected function of the same object. 2018-07-31 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch6.adb (Expand_Protected_Subprogram_Call): Handle properly a protected call that includes a default parameter that is a call to a protected function of the same type. gcc/testsuite/ * gnat.dg/prot5.adb, gnat.dg/prot5_pkg.adb, gnat.dg/prot5_pkg.ads: New testcase. From-SVN: r263101
Ed Schonberg committed -
This patch corrects an issue whereby building a multi-unit compilation with missing sources resulted in a cryptic "code generation" error instead of the appropriate file not found error. ------------ -- Source -- ------------ -- main.adb with Types; procedure Main is begin null; end; -- types.ads package Types is procedure Force; end; ---------------------------- -- Compilation and output -- ---------------------------- & gnatmake -q main.adb gnatmake: "types.adb" not found 2018-07-31 Justin Squirek <squirek@adacore.com> gcc/ada/ * lib-writ.adb (Write_With_Lines): Modfiy the generation of dependencies within ali files so that source unit bodies are properly listed even if said bodies are missing. Perform legacy behavior in GNATprove mode. * lib-writ.ads: Modify documentation to reflect current behavior. From-SVN: r263100
Justin Squirek committed -
The alignment of the couple of types from System.OS_Interface was wrongly set to 4 (32-bit) instead of 8 (64-bit) in 32-bit mode. 2018-07-31 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * libgnarl/s-osinte__solaris.ads (upad64_t): New private type. (mutex_t): Use it for 'lock' and 'data' components. (cond_t): Likewise for 'data' and use single 'flags' component. From-SVN: r263099
Eric Botcazou committed -
This patch corrects an issue whereby objects of a record type with a representation clause which are overlain by address would fail to get assigned values properly when one or both of said objects were marked volatile. 2018-07-31 Justin Squirek <squirek@adacore.com> gcc/ada/ * exp_ch5.adb (Make_Field_Assign): Force temporarily generated objects for assignment of overlaid user objects to be renamings instead of constant declarations. gcc/testsuite/ * gnat.dg/addr11.adb: New testcase. From-SVN: r263098
Justin Squirek committed -
This patch modifies the expansion of stand-alone subprogram bodies that appear in the body of a protected type to properly associate aspects and pragmas to the newly created spec for the subprogram body. As a result, the annotations are properly associated with the initial declaration of the subprogram. 2018-07-31 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_ch9.adb (Analyze_Pragmas): New routine. (Build_Private_Protected_Declaration): Code clean up. Relocate relevant aspects and pragmas from the stand-alone body to the newly created spec. Explicitly analyze any pragmas that have been either relocated or produced by the analysis of the aspects. (Move_Pragmas): New routine. * sem_prag.adb (Find_Related_Declaration_Or_Body): Recognize the case where a pragma applies to the internally created spec for a stand-along subprogram body declared in a protected body. gcc/testsuite/ * gnat.dg/global.adb, gnat.dg/global.ads: New testcase. From-SVN: r263097
Hristian Kirtchev committed -
When compiling with an assertion-enabled compiler, Assert_Failure can be raised when expanded an extended_return_statement whose enclosing scope is not a function (such as when it's a block_statement). The simple fix is to change the Assert to test Current_Subprogram rather than Current_Scope. Three such Assert pragmas are corrected in this way. 2018-07-31 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace calls to Current_Scope in three assertions with calls to Current_Subprogram. gcc/testsuite/ * gnat.dg/block_ext_return_assert_failure.adb: New testcase. From-SVN: r263096
Gary Dismukes committed -
This patch suppresses a spurious warning on the use of a 64-bit modular type in a quantified expression, where the range of iteration will include a bound that appears larger than the run-time representation of Universal_Integer'last. 2018-07-31 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_eval.adb (Check_Non_Static_Context): Do not warn on an integer literal greater than the upper bound of Universal_Integer'Last when expansion is disabled, to avoid a spurious warning over ranges involving 64-bit modular types. gcc/testsuite/ * gnat.dg/iter3.adb: New testcase. From-SVN: r263095
Ed Schonberg committed -
2018-07-31 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * einfo.adb (Write_Entity_Flags): Also print Is_Activation_Record flag. From-SVN: r263094
Arnaud Charlet committed -
High-level wrappers are easier to read. This change came up while reading some code related to GNATprove, but then uniformly applied to the entire frontend. For the few remaining membership tests that could be replaced by Is_Formal it is not obvious whether the high-level routine makes the code better. 2018-07-31 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb, repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests with a wrapper routine. From-SVN: r263093
Piotr Trojanek committed -
In GNATprove we used to store a variant of cross-reference information in the ALI file in lines that started with an 'F' letter. This is no longer the case, so the letter can be returned to the pool of unused prefixes. 2018-07-31 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines related to the FORMAL analysis done by GNATprove. From-SVN: r263092
Piotr Trojanek committed -
2018-07-31 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem.ads (Inside_Preanalysis_Without_Freezing): New global counter. * sem.adb (Semantics): This subprogram has now the responsibility of resetting the counter before analyzing a unit, and restoring its previous value before returning. * freeze.adb (Freeze_Entity): Do not freeze if we are preanalyzing without freezing. * sem_res.adb (Preanalyze_And_Resolve): Set & restore In_Preanalysis_Without_Freezing. From-SVN: r263091
Javier Miranda committed -
2018-07-31 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch4.adb (Traverse_Homonyms): Consider generic actuals that may rename a matching class-wide operation only if the renaming declaration for that actual is in an enclosing scope (i.e. within the corrresponding instance). From-SVN: r263090
Ed Schonberg committed -
2018-07-31 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada * checks.adb, contracts.adb, exp_aggr.adb, exp_ch5.adb, exp_disp.adb, make.adb, sem_ch4.adb, sem_eval.adb, sem_res.adb, usage.adb: Minor reformatting. From-SVN: r263089
Hristian Kirtchev committed -
This patch fixes a bug in which if "pragma Default_Storage_Pool (null);" is given, then a build-in-place function will get an incorrect error message "allocation from empty storage pool" even though there is no such allocation in the source program. 2018-07-31 Bob Duff <duff@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Allocator): Do not complain about the implicit allocator that occurs in the expansion of a return statement for a build-in-place function. From-SVN: r263088
Bob Duff committed -
2018-07-31 Olivier Hainque <hainque@adacore.com> * gcc.c (handle_spec_function): Accept a soft_matched_part argument, as do_spec_1. Pass it down to ... (eval_spec_function): Accept a soft_matched_part argument, and pass it down to ... (do_spec_2): Accept a soft_matched_part argument, and pass it down to do_spec_1. (do_spec_1): Pass soft_matched_part to handle_spec_function. (handle_braces): Update call to handle_spec_function. (driver::set_up_specs): Update calls to do_spec_2. (compare_debug_dump_opt_spec_function): Likewise. (compare_debug_self_opt_spec_function): Likewise. From-SVN: r263087
Olivier Hainque committed -
2018-06-07 Olivier Hainque <hainque@adacore.com> * common.opt (nolibc): New option. * doc/invoke.texi (Link Options): Document it. * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc. * config/alpha/linux.h: Likewise. * config/arc/elf.h: Likewise. * config/arm/uclinux-elf.h: Likewise. * config/arm/unknown-elf.h: Likewise. * config/avr/avrlibc.h: Likewise. * config/bfin/bfin.h: Likewise. * config/bfin/linux.h: Likewise. * config/bfin/uclinux.h: Likewise. * config/darwin.h: Likewise. * config/darwin10.h: Likewise. * config/darwin12.h: Likewise. * config/gnu-user.h: Likewise. * config/lm32/uclinux-elf.h: Likewise. * config/pa/pa-hpux11.h: Likewise. * config/pa/pa64-hpux.h: Likewise. * config/sparc/sparc.h: Likewise. From-SVN: r263083
Olivier Hainque committed -
2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * gfortran.texi: Add description of asynchronous I/O. * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables as volatile. * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to st_wait_async and change argument spec from ".X" to ".w". (gfc_trans_wait): Pass ID argument via reference. 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * gfortran.dg/f2003_inquire_1.f03: Add write statement. * gfortran.dg/f2003_io_1.f03: Add wait statement. 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * Makefile.am: Add async.c to gfor_io_src. Add async.h to gfor_io_headers. * Makefile.in: Regenerated. * gfortran.map: Add _gfortran_st_wait_async. * io/async.c: New file. * io/async.h: New file. * io/close.c: Include async.h. (st_close): Call async_wait for an asynchronous unit. * io/file_pos.c (st_backspace): Likewise. (st_endfile): Likewise. (st_rewind): Likewise. (st_flush): Likewise. * io/inquire.c: Add handling for asynchronous PENDING and ID arguments. * io/io.h (st_parameter_dt): Add async bit. (st_parameter_wait): Correct. (gfc_unit): Add au pointer. (st_wait_async): Add prototype. (transfer_array_inner): Likewise. (st_write_done_worker): Likewise. * io/open.c: Include async.h. (new_unit): Initialize asynchronous unit. * io/transfer.c (async_opt): New struct. (wrap_scalar_transfer): New function. (transfer_integer): Call wrap_scalar_transfer to do the work. (transfer_real): Likewise. (transfer_real_write): Likewise. (transfer_character): Likewise. (transfer_character_wide): Likewise. (transfer_complex): Likewise. (transfer_array_inner): New function. (transfer_array): Call transfer_array_inner. (transfer_derived): Call wrap_scalar_transfer. (data_transfer_init): Check for asynchronous I/O. Perform a wait operation on any pending asynchronous I/O if the data transfer is synchronous. Copy PDT and enqueue thread for data transfer. (st_read_done_worker): New function. (st_read_done): Enqueue transfer or call st_read_done_worker. (st_write_done_worker): New function. (st_write_done): Enqueue transfer or call st_read_done_worker. (st_wait): Document as no-op for compatibility reasons. (st_wait_async): New function. * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; add NOTE where necessary. (get_gfc_unit): Likewise. (init_units): Likewise. (close_unit_1): Likewise. Call async_close if asynchronous. (close_unit): Use macros LOCK and UNLOCK. (finish_last_advance_record): Likewise. (newunit_alloc): Likewise. * io/unix.c (find_file): Likewise. (flush_all_units_1): Likewise. (flush_all_units): Likewise. * libgfortran.h (generate_error_common): Add prototype. * runtime/error.c: Include io.h and async.h. (generate_error_common): New function. 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed'. 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * testsuite/libgomp.fortran/async_io_1.f90: New test. * testsuite/libgomp.fortran/async_io_2.f90: New test. * testsuite/libgomp.fortran/async_io_3.f90: New test. * testsuite/libgomp.fortran/async_io_4.f90: New test. * testsuite/libgomp.fortran/async_io_5.f90: New test. * testsuite/libgomp.fortran/async_io_6.f90: New test. * testsuite/libgomp.fortran/async_io_7.f90: New test. From-SVN: r263082
Andre Vieira committed -
So the value can be used in places where an absolute path is expected. 2018-07-31 Olivier Hainque <hainque@adacore.com> * gcc.c (getenv_spec_function): Prepend '/' to value for allowed undefined variables. From-SVN: r263081
Olivier Hainque committed -
From-SVN: r263080
GCC Administrator committed
-
- 30 Jul, 2018 2 commits
-
-
In arm_block_set_aligned_vect 8-bit constants are generated as zero- extended const_ints, not sign-extended as required. Fix that. PR target/86640 * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode instead of GEN_INT. From-SVN: r263075
Segher Boessenkool committed -
Implement the proposed resolution from LWG 1052, which also resolves DR 2118 by avoiding taking the address in the first place. PR libstdc++/86734 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call _S_to_pointer (LWG 1052, LWG 2118). (reverse_iterator::_S_to_pointer): Define overloaded helper functions. * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test. * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. From-SVN: r263074
Jonathan Wakely committed
-