- 28 Nov, 2018 32 commits
-
-
profile-count.h (profile_count::split): Give better result when splitting profile_probability::always. * profile-count.h (profile_count::split): Give better result when splitting profile_probability::always. From-SVN: r266584
Jan Hubicka committed -
* except.c (do_allocate_exception): Annotate __cxa_allocate_exception as COLD. From-SVN: r266583
Jan Hubicka committed -
2018-11-28 Vladimir Makarov <vmakarov@redhat.com> PR target/88207 * ira-costs.c (scan_one_insn): Process subregs when updating costs for pseudos and allocnos from insn. From-SVN: r266582
Vladimir Makarov committed -
* decl.c (grokdeclarator): Check if declarator is null. * g++.dg/ext/flexary31.C: New test. From-SVN: r266581
Marek Polacek committed -
From-SVN: r266577
David Edelsohn committed -
* g++.dg/debug/dwarf2/pr86900.C: XFAIL AIX. * g++.dg/opt/pr83084.C: XFAIL AIX. From-SVN: r266576
David Edelsohn committed -
From-SVN: r266574
David Edelsohn committed -
Support inlining functions that contain only assignments and return statements, with expressions of either constants or parameters. Functions that contain other kinds of statements or expressions are not yet inlined. With this change, about 100 functions in the standard library are inlinable. Reviewed-on: https://go-review.googlesource.com/c/150073 From-SVN: r266573
Ian Lance Taylor committed -
Updated the library version to 76:3:0. libphobos/ChangeLog: 2018-11-28 Iain Buclaw <ibuclaw@gdcproject.org> * Makefile.in: Rebuild. * configure: Rebuild. * configure.ac (DRUNTIME_SOVERSION): Remove. (PHOBOS_SOVERSION): Remove. (libtool_VERSION): Add. * libdruntime/Makefile.am: Use libtool_VERSION. * libdruntime/Makefile.in: Rebuild. * src/Makefile.am: Use libtool_VERSION. * src/Makefile.in: Rebuild. * testsuite/Makefile.in: Rebuild. From-SVN: r266572
Iain Buclaw committed -
* config/h8300/constraints.md: Add "C" constraint for call insns. * config/h8300/h8300.md (call, call_value): Turn into a define_expand and define_insn pair. Move invalid call targets into a register in the expander and fix constraints in the matching pattern. * config/h8300/predicates.md (call_expander_operand): Renamed from call_insn_operand. Reject things we shouldn't be trying to handle. (call_insn_operand): New predicate for use by the call/call_value insns. (small_call_insn_operand): Update appropriately. From-SVN: r266571
Jeff Law committed -
2018-11-28 Sam Tebbs <sam.tebbs@arm.com> * config/aarch64/aarch64.c (aarch64_process_target_attr): Replace calls to strtok with strtok_r. From-SVN: r266570
Sam Tebbs committed -
The recent patch for PR 83306 removed the fs_err_concat functions that were used by the experimental::filesystem::filesystem_error class as well. This fixes it by doing the string generation directly in filesystem_error::_M_gen_what() instead of using the removed function. PR libstdc++/83306 * src/filesystem/path.cc (filesystem_error::_M_gen_what()): Create string directly, instead of calling fs_err_concat. From-SVN: r266569
Jonathan Wakely committed -
PR libstdc++/83511 * include/std/string_view (basic_string_view::substr): Add default argument to first parameter. * include/experimental/string_view (basic_string_view::substr): Likewise. * testsuite/21_strings/basic_string_view/operations/substr/char/ 83511.cc: New test. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/ 83511.cc: New test. * testsuite/experimental/string_view/operations/substr/char/83511.cc: New test. * testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc: New test. From-SVN: r266568
Jonathan Wakely committed -
2018-11-28 Edward Smith-Rowland <3dw4rd@verizon.net> Implement uniform container erasure for C++20. * include/Makefile.am: Move erase_if.h. * include/Makefile.in: Move erase_if.h. * include/experimental/bits/erase_if.h: Move ... * include/bits/erase_if.h: ... here. * include/experimental/map: Move erase_if.h. * include/experimental/set: Move erase_if.h. * include/experimental/unordered_map: Move erase_if.h. * include/experimental/unordered_set: Move erase_if.h. * include/std/deque (erase_if, erase): New functions. * include/std/forward_list: Ditto. * include/std/list: Ditto. * include/std/map: Ditto. * include/std/set: Ditto. * include/std/string: Ditto. * include/std/unordered_map: Ditto. * include/std/unordered_set: Ditto. * include/std/vector: Ditto. * testsuite/21_strings/basic_string/erasure.cc: New test. * testsuite/23_containers/deque/erasure.cc: New test. * testsuite/23_containers/forward_list/erasure.cc: New test. * testsuite/23_containers/list/erasure.cc: New test. * testsuite/23_containers/map/erasure.cc: New test. * testsuite/23_containers/set/erasure.cc: New test. * testsuite/23_containers/unordered_map/erasure.cc: New test. * testsuite/23_containers/unordered_set/erasure.cc: New test. * testsuite/23_containers/vector/erasure.cc: New test. From-SVN: r266567
Edward Smith-Rowland committed -
Add fix for "path::lexically_relative is confused by trailing slashes". * doc/xml/manual/intro.xml: Document LWG 3096 change. * src/filesystem/std-path.cc (path::lexically_relative(const path&)): Treat a final empty element equivalently to a final dot element. * testsuite/27_io/filesystem/path/generation/relative.cc: Add checks for the examples in the DR. From-SVN: r266566
Jonathan Wakely committed -
The class API provides no way to modify the members, so we can share them between copies of the same object. Copying becomes a simple reference count update, which doesn't throw. Also adjust the what() string to allow distinguishing between an empty path passed to the constructor, and no path. PR libstdc++/83306 * include/bits/fs_path.h (filesystem_error): Move data members into pimpl class owned by shared_ptr. Remove inline definitions of member functions. * src/filesystem/std-path.cc (filesystem_error::_Impl): Define. (filesystem_error): Define member functions. * testsuite/27_io/filesystem/filesystem_error/cons.cc: New test. * testsuite/27_io/filesystem/filesystem_error/copy.cc: New test. From-SVN: r266565
Jonathan Wakely committed -
From-SVN: r266563
Sameera Deshpande committed -
If the allocation of abbrevs->abbrevs in read_abbrevs fails, then abbrevs->num_abbrevs remains nonzero, and consequently free_abbrevs will segfault when accessing abbrevs->abbrevs. Fix this by setting abbrevs->num_abbrevs only after abbrevs->abbrevs allocation has succeeded. Bootstrapped and reg-tested on x86_64. 2018-11-28 Tom de Vries <tdevries@suse.de> * dwarf.c (read_abbrevs): Fix handling of abbrevs->abbrevs allocation failure. From-SVN: r266562
Tom de Vries committed -
2018-11-28 Richard Biener <rguenther@suse.de> PR tree-optimization/88223 * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping over a stored-same value may-alias store make sure to consider partial overlaps which are valid when TBAA reasonings do not apply and byte-granular overlaps are possible at all. * gcc.dg/torture/pr88223.c: New testcase. From-SVN: r266560
Richard Biener committed -
* doc/xml/manual/status_cxx2017.xml: Update C++17 status. * doc/html/*: Regenerate. From-SVN: r266559
Jonathan Wakely committed -
re PR tree-optimization/88217 (Compile time and memory hog w/ -O2 -fstrict-enums -fno-tree-forwprop -fno-tree-fre) 2018-11-28 Richard Biener <rguenther@suse.de> PR tree-optimization/88217 * vr-values.c (vr_values::extract_range_from_phi_node): Make sure to handle results > +INF and < -INF correctly when trying to drop down to +INF - 1 or -INF + 1. * g++.dg/pr88217.C: New testcase. From-SVN: r266557
Richard Biener committed -
git commit 41f70262f (svn rev 264868) exposed a signed/unsigned comparison. Fixed by matching the type of the local var to that of the tree field. * xcoffout.c (do_block): Signed/unsigned warning fix. From-SVN: r266555
Alan Modra committed -
PR testsuite/85368 * gcc.dg/tree-ssa/phi-opt-11.c: For branch_cost targets, expect 0 ifs rather than 0 or 2 depending on logical_op_short_circuit. From-SVN: r266552
Jakub Jelinek committed -
2018-11-28 Richard Biener <rguenther@suse.de> PR tree-optimization/79351 * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from empty CONSTRUCTORs ensure the store is at a constant position. * gcc.dg/torture/pr79351.c: New testcase. From-SVN: r266551
Richard Biener committed -
re PR fortran/88229 (ICE tree check: expected integer_cst, have nop_expr in get_len, at tree.h:5608) 2018-11-28 Richard Biener <rguenther@suse.de> PR tree-optimization/88229 * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT is an INTEGER_CST before accessing it so. From-SVN: r266550
Richard Biener committed -
gcc/ChangeLog: 2018-11-28 Sam Tebbs <sam.tebbs@arm.com> * doc/invoke.texi (-mtune=): Remove obsolete CPU names. From-SVN: r266549
Sam Tebbs committed -
PR target/88189 * config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1. Formatting fixes. * config/i386/sse.md (sse4_1_blendv<ssemodesuffix>): New pattern. * gcc.target/i386/sse4_1-pr88189-1.c: New test. * gcc.target/i386/sse4_1-pr88189-2.c: New test. * gcc.target/i386/avx-pr88189-1.c: New test. * gcc.target/i386/avx-pr88189-2.c: New test. From-SVN: r266548
Jakub Jelinek committed -
PR c++/87476 * typeck2.c (digest_init_r): Re-add handing of signed/unsigned char strings and add it to the initialization of wide array from non-wide string diagnostics too. * g++.dg/cpp0x/pr87476-1.C: New test. * g++.dg/cpp0x/pr87476-2.C: New test. From-SVN: r266547
Jakub Jelinek committed -
PR c++/88215 * c-ubsan.c: Include langhooks.h. (ubsan_instrument_division): Change gcc_assert that main variants of op0 and op1 types are equal to gcc_checking_assert that the main variants are compatible types. * c-c++-common/ubsan/pr88215.c: New test. From-SVN: r266546
Jakub Jelinek committed -
2018-10-19 Richard Biener <rguenther@suse.de> PR tree-optimization/88182 * g++.dg/gomp/pr88182.C: Move from libgomp and use -fopenmp-simd. * testsuite/libgomp.c++/pr88182.C: Move to g++.dg/gomp. From-SVN: r266545
Richard Biener committed -
2018-11-28 Johannes Pfau <johannespfau@gmail.com> * MAINTAINERS (Write After Approval): Add myself. From-SVN: r266544
Johannes Pfau committed -
From-SVN: r266540
GCC Administrator committed
-
- 27 Nov, 2018 8 commits
-
-
PR c++/88187 * decl.c (grokdeclarator): Don't diagnose deduction guide errors if !funcdecl_p. * g++.dg/other/pr88187.C: New test. From-SVN: r266537
Jakub Jelinek committed -
Track whether we've seen an error when importing a function; we will use error tracking to avoid knock-on errors. Stop importing identifiers at a ')'. Provide a way to adjust the indentation level while importing. Reviewed-on: https://go-review.googlesource.com/c/150072 From-SVN: r266536
Ian Lance Taylor committed -
* testsuite/27_io/filesystem/operations/canonical.cc: Remove directory created by test. * testsuite/27_io/filesystem/operations/symlink_status.cc: Remove symlink created by test. From-SVN: r266535
Jonathan Wakely committed -
Inlinable function bodies are generated after the determine_types pass, so we know the type for all constants. Rather than try to determine it again when inlining, record the type in the export data, using a $convert expression. Reduce the number of explicit $convert expressions by recording a type context with the expected type in cases where that type is known. Reviewed-on: https://go-review.googlesource.com/c/150071 From-SVN: r266534
Ian Lance Taylor committed -
This resolves a longstanding issue where the lock policy for shared_ptr reference counting depends on compilation options when the header is included, so that different -march options can cause ABI changes. For example, objects compiled with -march=armv7 will use atomics to synchronize reference counts, and objects compiled with -march=armv5t will use a mutex. That means the shared_ptr control block will have a different layout in different objects, causing ODR violations and undefined behaviour. This was the root cause of PR libstdc++/42734 as well as PR libstdc++/67843. The solution is to decide on the lock policy at build time, when libstdc++ is configured. The configure script checks for the availability of the necessary atomic built-ins for the target and fixes that choice permanently. Different -march flags used to compile user code will not cause changes to the lock policy. This results in an ABI change for certain compilations, but only where there was already an ABI incompatibility between the libstdc++.so library and objects built with an incompatible -march option. In general, this means a more stable ABI that isn't silently altered when -march flags make addition atomic ops available. To force a target to use "atomic" or "mutex" the new configure option --with-libstdcxx-lock-policy can be used. In order to turn ODR violations into linker errors, the uses of shared_ptr in filesystem directory iterators have been replaced with __shared_ptr, and explicit instantiations are declared. This ensures that object files using those types cannot link to libstdc++ libs unless they use the same lock policy. PR libstdc++/67843 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY. * doc/xml/manual/configure.xml: Document new configure option. * include/bits/fs_dir.h (directory_iterator): Use __shared_ptr instead of shared_ptr. (recursive_directory_iterator): Likewise. (__shared_ptr<_Dir>): Add explicit instantiation declaration. (__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise. * include/bits/shared_ptr_base.h (__allocate_shared, __make_shared): Add default template argument for _Lock_policy template parameter. * include/ext/concurrence.h (__default_lock_policy): Check macro _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current target supports the builtins for compare-and-swap. * src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit instantiation definition. (__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise. (directory_iterator, recursive_directory_iterator): Use __make_shared instead of make_shared. From-SVN: r266533
Jonathan Wakely committed -
An inlinable function body may need to refer to result parameters, so each result parameter needs a name. We already give them all names in start_function (via create_result_variables). Change the export data so that for an inlinable function we use those names for the function declaration's result parameters. Reviewed-on: https://go-review.googlesource.com/c/150070 From-SVN: r266532
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/c/150069 From-SVN: r266531
Ian Lance Taylor committed -
When we inline functions, we may parse types that we have not seen before inlining. Inlining runs after the finalize_methods pass, so those types will not be finalized, meaning that we don't have an accurate list of which methods they support. Explicitly finalize them when we parse them. Reviewed-on: https://go-review.googlesource.com/c/150068 From-SVN: r266530
Ian Lance Taylor committed
-