1. 03 May, 2019 20 commits
  2. 02 May, 2019 20 commits
    • PR libstdc++/90314 fix non-equivalent declarations of std::swap · 315f8b5f
      In order to use the _GLIBCXX_NOEXCEPT_IF macro for an expression
      containing commas I enclosed it in parentheses, so the preprocessor
      wouldn't treat it as two arguments to the function-like macro. Clang
      gives an error because now the noexcept-specifier noexcept((C)) is not
      equivalent to the noexcept(C) one on the declaration of swap in
      <type_traits>.
      
      Instead of requiring extra parentheses around the expression, redefine
      _GLIBCXX_NOEXCEPT_IF as a variadic macro (even though supporting that in
      C++98 is a GNU extension).
      
      	PR libstdc++/90314
      	* include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Use variadic macro.
      	* include/bits/move.h (swap): Remove extra parentheses.
      
      From-SVN: r270827
      Jonathan Wakely committed
    • Remove redundant __constexpr_addressof function · b752e2c9
      The std::__addressof function is always constexpr, even in C++14, so we
      can just use that.
      
      	* include/experimental/bits/lfts_config.h: Improve doc markup.
      	* include/experimental/optional: Improve docs.
      	(_Has_addressof_mem, _Has_addressof_free, _Has_addressof)
      	(__constexpr_addressof): Remove.
      	(optional::operator->()): Use std::__addressof().
      	* include/std/optional (optional::operator->()): Adjust whitespace.
      	* testsuite/experimental/optional/constexpr/observers/2.cc: Check
      	that operator-> is still constexpr with overloaded operator&. Change
      	to compile-only test.
      	* testsuite/experimental/optional/constexpr/observers/3.cc: Change to
      	compile-only test.
      
      From-SVN: r270826
      Jonathan Wakely committed
    • Improve smart pointer docs · efa9d8ee
      	* include/bits/shared_ptr.h: Improve docs.
      	* include/bits/shared_ptr_atomic.h: Likewise.
      	* include/bits/unique_ptr.h: Likewise. Adjust whitespace.
      
      From-SVN: r270825
      Jonathan Wakely committed
    • * gcc.pot: Regenerate. · c4cb56a1
      From-SVN: r270822
      Joseph Myers committed
    • rs6000: Make debug regnums independent of internal ones · fc9613c6
      Where we use "internal GCC register numbers" in debug info, that
      defines an ABI, so we cannot change those numbers.  But we want to
      change the internal numbers, and sometimes we do that without
      remembering this gotcha anyway; so let's make everything independent
      of the internal numbers.
      
      For those registers that are not recognised here (we still have MQ for
      example, but also the GCC-internal frame pointer and arg pointer
      registers), this just returns the internal register number.  This is a
      bit worrying: that number could be the same as that for a register we
      validly want to have in debug info.  I first had a gcc_unreachable ()
      for that, but this does now work because dwarf2cfi calls
      rs6000_dbx_register_number for every internal register.  Then I just
      returned 0 for the internal regs, but that causes various regression
      tests to fail.  So now I return the internal register number again,
      as it was before; but this needs to be fixed.
      
      
      	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
      	the internal register number, for any "real" register.
      
      From-SVN: r270820
      Segher Boessenkool committed
    • rs6000: Debug regnums for TM registers · f58bd252
      Since GCC 8, we have output incorrect numbers for the transactional
      memory registers.
      
      Also, we didn't output the correct DWARF register numbers for those.
      The number for sprN is 100+N.
      
      This fixes both these issues.
      
      
      	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
      	correct numbers for TFHAR, TFIAR, TEXASR.
      
      From-SVN: r270819
      Segher Boessenkool committed
    • libphobos: RISC-V: Fix soft-float build errors with IEEE exception flags · 1770f169
      Fix assembly errors:
      
      .../libphobos/src/std/math.d: Assembler messages:.../libphobos/src/std/math.d:4773: Error: unrecognized opcode `frflags a0'.../libphobos/src/std/math.d:4856: Error: unrecognized opcode `fsflags a5'.../libphobos/src/std/math.d:4856: Error: unrecognized opcode `fsflags a5'.../libphobos/src/std/math.d:4773: Error: unrecognized opcode `frflags a0'.../libphobos/src/std/math.d:5549: Error: unrecognized opcode `fscsr a5'.../libphobos/src/std/math.d:5456: Error: unrecognized opcode `frcsr a5'.../libphobos/src/std/math.d:5456: Error: unrecognized opcode `frcsr a5'.../libphobos/src/std/math.d:5549: Error: unrecognized opcode `fscsr a5'.../libphobos/src/std/math.d:5456: Error: unrecognized opcode `frcsr a5'.../libphobos/src/std/math.d:5549: Error: unrecognized opcode `fscsr a0'.../libphobos/src/std/math.d:5456: Error: unrecognized opcode `frcsr a0'.../libphobos/src/std/math.d:5456: Error: unrecognized opcode `frcsr a0'.../libphobos/src/std/math.d:5549: Error: unrecognized opcode `fscsr s2'make[8]: *** [Makefile:1119: std/math.lo] Error 1
      
      triggered with the RISC-V lp64 multilib in a GCC build configured with 
      `--enable-multilib --enable-languages=all --target=riscv64-linux-gnu'. 
      This is due to unconditional explicit use of F extension instructions 
      within inline assembly, to access IEEE exception flags.  The use of 
      these instructions is not allowed when building for a soft-float ABI.
      
      Correct the problem by wrapping said inline assembly into a conditional 
      such that if `D_SoftFloat' is true, then reads from IEEE exception flags 
      return 0 and writes are ignored instead, complementing r270522 
      ("libphobos: Add D support for RISC-V Linux"), which is an updated 
      version of <https://gcc.gnu.org/ml/gcc-patches/2019-04/msg00325.html>, 
      where the problematic code has originated from.
      
      libphobos/ChangeLog:
      
      2019-05-02  Maciej W. Rozycki  <macro@wdc.com>
      
      	* std/math.d (IeeeFlags.getIeeeFlags): Handle RISC-V soft-float ABI.
      	(IeeeFlags.resetIeeeFlags): Likewise.
      	(FloatingPointControl.getControlState): Likewise.
      	(FloatingPointControl.setControlState): Likewise.
      
      From-SVN: r270815
      Maciej W. Rozycki committed
    • Miscellaneous API doc improvements · 8c6a71e4
      	* include/bits/basic_string.h: Fix iterator/index confusion in
      	Doxygen comments.
      	* include/bits/range_access.h: Fix Doxygen warnings.
      	* include/bits/refwrap.h: Do not document implementation details.
      	(ref, cref): Group docs with reference_wrapper.
      	* include/std/fstream: Fix Doxygen markup.
      	* libsupc++/initializer_list (begin, end): Group docs with
      	initializer_list.
      
      From-SVN: r270814
      Jonathan Wakely committed
    • Allow Markdown formatting in Doxygen comments · 50d5fcf5
      	* doc/doxygen/user.cfg.in: Set MARKDOWN_SUPPORT=YES.
      
      From-SVN: r270813
      Jonathan Wakely committed
    • Improve docs for mutexes · 725708ab
      	* include/bits/unique_lock.h: Fix/improve doxygen markup.
      	* include/std/mutex: Likewise.
      	* include/std/shared_mutex: Likewise.
      
      From-SVN: r270812
      Jonathan Wakely committed
    • Improve docs for C++17 Filesystem library · d727fdc4
      	* include/bits/fs_dir.h: Fix/improve doxygen markup.
      	* include/bits/fs_fwd.h: Likewise.
      	* include/bits/fs_ops.h: Likewise.
      	* include/bits/fs_path.h: Likewise.
      	* include/std/filesystem: Likewise.
      
      From-SVN: r270811
      Jonathan Wakely committed
    • Improve docs for Networking TS · 3084625d
      	* include/experimental/bits/net.h: Fix/improve doxygen markup.
      	* include/experimental/buffer: Likewise.
      	* include/experimental/executor: Likewise.
      	* include/experimental/internet: Likewise.
      	* include/experimental/io_context: Likewise.
      	* include/experimental/net: Likewise.
      	* include/experimental/netfwd: Likewise.
      	* include/experimental/socket: Likewise.
      	* include/experimental/timer: Likewise.
      
      From-SVN: r270810
      Jonathan Wakely committed
    • Improve docs for Library Fundamentals TS · 1ababc8b
      	* doc/doxygen/doxygroups.cc: Move description of experimental group
      	here.
      	* include/experimental/algorithm: Add to libfund-ts doc group.
      	* include/experimental/any: Likewise. Do not document implementation
      	details.
      	* include/experimental/array: Add to libfund-ts doc group.
      	* include/experimental/bits/lfts_config.h: Define libfund-ts doc group
      	for Library Fundamentals.
      	* include/experimental/chrono: Add to libfund-ts doc group.
      	* include/experimental/deque: Likewise.
      	* include/experimental/forward_list: Likewise.
      	* include/experimental/functional: Likewise.
      	* include/experimental/iterator: Likewise.
      	* include/experimental/list: Likewise.
      	* include/experimental/map: Likewise.
      	* include/experimental/memory: Likewise.
      	* include/experimental/memory_resource: Likewise. Improve docs.
      	details.
      	* include/experimental/numeric: Add to libfund-ts doc group.
      	* include/experimental/optional: Likewise.
      	* include/experimental/propagate_const: Likewise.
      	* include/experimental/random: Likewise.
      	* include/experimental/ratio: Likewise.
      	* include/experimental/regex: Likewise.
      	* include/experimental/set: Likewise.
      	* include/experimental/source_location: Likewise.
      	* include/experimental/string: Likewise.
      	* include/experimental/string_view: Likewise.
      	* include/experimental/system_error: Likewise.
      	* include/experimental/tuple: Likewise.
      	* include/experimental/type_traits: Likewise.
      	* include/experimental/unordered_map: Likewise.
      	* include/experimental/unordered_set: Likewise.
      	* include/experimental/utility: Likewise.
      	* include/experimental/vector: Likewise.
      	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
      	* testsuite/experimental/array/neg.cc: Adjust dg-error.
      	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
      	Likewise.
      	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
      
      From-SVN: r270809
      Jonathan Wakely committed
    • Improve docs for Filesystem TS · caace300
      	* include/experimental/bits/fs_dir.h: Fix Doxygen markup.
      	* include/experimental/bits/fs_fwd.h: Improve docs.
      	* include/experimental/bits/fs_ops.h: fix Doxygen markup.
      	* include/experimental/bits/fs_path.h: Likewise.
      	(path, filesystem_error, u8path): Improve docs.
      	* include/experimental/filesystem: Link to docs for TS.
      
      From-SVN: r270808
      Jonathan Wakely committed
    • Improve API docs for <memory> and <scoped_allocator> · c05ab418
      	* config/allocator/new_allocator_base.h (__allocator_base): Add
      	workaround for Doxygen bug #6945.
      	* include/std/memory: Improve docs. Define group for pointer safety.
      	* include/std/scoped_allocator: Improve docs. Use "undocumented"
      	conditional to suppress documentation for implementation details.
      
      From-SVN: r270807
      Jonathan Wakely committed
    • Improve API docs for mathematical special functions · d16250de
      This prevents "Mathematical Special Functions" appearing in the
      top-level menu of the generated HTML docs, and adds "TR1" to the title
      for the TR1 docs, to avoid duplicate titles.
      
      	* include/bits/specfun.h: Improve docs.
      	* include/tr1/cmath: Likewise. Fix nesting of preprocessor conditions
      	and namespaces.
      
      From-SVN: r270806
      Jonathan Wakely committed
    • Improve Doxygen docs for nested namespaces · 19aaf814
      	* doc/doxygen/doxygroups.cc (std::tr2, std::__gnu_cxx): Improve docs.
      	(std::experimental): Add docs.
      	* doc/doxygen/user.cfg.in (PREDEFINED): Expand macros for __cxx11
      	namespace to nothing when generating docs.
      	* include/bits/regex_constants.h (std::regex_constants): Improve docs.
      	* include/std/chrono (std::chrono): Likewise.
      	* include/std/functional (std::placeholders): Likewise.
      	* include/std/thread (std::this_thread): Likewise.
      
      From-SVN: r270805
      Jonathan Wakely committed
    • Fix markup for Parallel Mode docs · 69b1efc7
      	* include/parallel/settings.h: Fix Doxygen markup.
      
      From-SVN: r270804
      Jonathan Wakely committed
    • Adjust Doxygen processing of pb_ds containers · 574dfb67
      Several of the pb_ds headers are intended to be included multiple times,
      within the definition of various class templates. The including files
      define macros like PB_DS_CLASS_C_DEC and PB_DS_GEN_POS before including
      these headers.
      
      In some cases the types defined in the headers are actually nested types
      within other classes, and so should not have been documented as though
      they are declared in the global namespace, as in:
      https://gcc.gnu.org/onlinedocs/gcc-8.3.0/libstdc++/api/a12028.html
      
      In other cases the headers provide inline member function definitions,
      but when processed by Doxygen the class name "PB_DS_CLASS_C_DEC" is not
      recognised.
      
      This patch makes Doxygen ignore definitions that only make sense when
      included in the right context with the right macros defined.
      
      	* include/ext/pb_ds/detail/bin_search_tree_/*_imps.hpp: Do not define
      	anything unless PB_DS_CLASS_C_DEC is defined.
      	* include/ext/pb_ds/detail/binary_heap_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/binomial_heap_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/binomial_heap_base_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/gp_hash_table_map_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/hash_fn/*_imp.hpp: Likewise.
      	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/*_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/list_update_map_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/ov_tree_map_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/pairing_heap_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/pat_trie_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/rb_tree_map_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/rc_binomial_heap_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/resize_policy*_imp.hpp: Likewise.
      	* include/ext/pb_ds/detail/splay_tree_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/thin_heap_/*_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/trie_policy*_imp.hpp: Likewise.
      	* include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Likewise.
      	* include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp:
      	Likewise.
      
      From-SVN: r270803
      Jonathan Wakely committed