François Dumont | 27 Jun 22:45 2016
Picon

Re: [Bug libstdc++/71640] [7 Regression] include/c++/7.0.0/bits/hashtable.h:293:7: error: too many template parameters in template redeclaration

Trivial attached patch applied to fix this regression. I am surprised 
that gcc had not detected it.

2016-06-27  François Dumont  <fdumont <at> gcc.gnu.org>

     PR libstdc++/71640
     * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
     friend declaration.

On 26/06/2016 18:21, pinskia at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71640
>
> Andrew Pinski <pinskia at gcc dot gnu.org> changed:
>
>             What    |Removed                     |Added
> ----------------------------------------------------------------------------
>     Target Milestone|---                         |7.0
>

Attachment (trivial_fix.patch): text/x-patch, 512 bytes
Jonathan Wakely | 17 Jun 20:28 2016
Picon
Gravatar

[PATCH] libstdc++/71545 fix debug checks in binary search algorithms

	PR libstdc++/71545
	* include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
	Remove irreflexive checks.
	* include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
	binary_search): Likewise.
	* testsuite/25_algorithms/equal_range/partitioned.cc: New test.
	* testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
	* testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
	* testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
	* testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
	Add constructor from array.

The binary search algos and lexicographical_compare do not require the
comparison function to be irreflexive, so the recently-added debug
mode checks need to be removed.

Tested x86_64-linux, committed to trunk. gcc-6-branch commit to
follow.
commit e775b35ff6cb0b6843ec2f1c8bf3a136deb898dd
Author: Jonathan Wakely <jwakely <at> redhat.com>
Date:   Fri Jun 17 11:09:18 2016 +0100

    libstdc++/71545 fix debug checks in binary search algorithms

    	PR libstdc++/71545
    	* include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
    	Remove irreflexive checks.
    	* include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
(Continue reading)

Daniel Krügler | 14 Jun 23:22 2016
Picon

[Patch] Implement is_[nothrow_]swappable (p0185r1) - 2nd try

This is an implementation of the Standard is_swappable traits according to

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html

During that work it has been found that std::array's member swap's exception
specification for zero-size arrays was incorrectly depending on the value_type
and that was fixed as well.

This patch is *untested*, because I cannot make the tests run on my
Windows system.

Upon the suggestion of Mike Stump I'm proposing this patch
nonetheless, asking for sending
me as specific feedback as possible for any failing tests so that I
can try to make further
adjustments if needed.

Thanks for your patience,

- Daniel

Gerald Pfeifer | 29 May 12:41 2016

libstdc++/ext/lwg-active.html (many issues, how to address?)

Hi there,

you guys probably noticed that I have focusing on some link checking
and fixing recently, and one of the largest problem spots have been
the lwg-*.html pages on the libstdc++ site.

I do know you're just mirroring this, so fixing things locally does
not make sense, so two questions:  Do we really need to mirror these,
or can we avoid that?  And, if the former, how do we get things fixed?

Picking http://gcc.gnu.org/onlinedocs/libstdc++/ext/lwg-active.html

- http://cplusplus.co.il/2010/03/21/catching-uncaught-exceptions-within-terminate/
  This redirects to http://www.efesx.com and then gets into a "server
  not found".

- http://llvm.org/bugs/show_bug.cgi?id=19742
- http://llvm.org/bugs/show_bug.cgi?id=20174
- http://llvm.org/bugs/show_bug.cgi?id=20175

  These three should be changed to https.

- http://msdn.microsoft.com/en-us/library/49147z04(VS.80).aspx

  This redirects to https://msdn.microsoft.com/en-us/library/49147z04%28VS.80%29.aspx

- http://www.tablix.org/~avian/blog/archives/2008/01/c_streams_suck/

  This should be changed to https.

(Continue reading)

Richard Biener | 27 May 08:14 2016
Picon

GCC 5 Branch is frozen

Hi,

The GCC 5 branch is frozen now in preparation for a GCC 5.4 release candidate.  All changes require release
manager approval until after the GCC 5.4 release.

Thanks,
Richard.

Jonathan Wakely | 24 May 18:02 2016
Picon
Gravatar

[PATCH] Add priority_queue::value_compare (LWG 2684)

	* include/bits/stl_queue.h (priority_queue::value_compare): Define.

This is only Tentatively Ready but I don't think there's any harm in
making the change now. Libc++ have been shipping this for years,
without realising it wasn't actually in the standard :-)

Tested x86_64, committed to trunk.

commit 64c647342c0786ae01b4f0b4b4ce716da7faa757
Author: redi <redi <at> 138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue May 24 15:59:05 2016 +0000

    Add priority_queue::value_compare (LWG 2684)

    	* include/bits/stl_queue.h (priority_queue::value_compare): Define.

    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk <at> 236646 138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/libstdc++-v3/include/bits/stl_queue.h b/libstdc++-v3/include/bits/stl_queue.h
index 9caca03..a292309 100644
--- a/libstdc++-v3/include/bits/stl_queue.h
+++ b/libstdc++-v3/include/bits/stl_queue.h
 <at>  <at>  -417,6 +417,9  <at>  <at>  _GLIBCXX_BEGIN_NAMESPACE_VERSION
       typedef typename _Sequence::const_reference           const_reference;
       typedef typename _Sequence::size_type                 size_type;
       typedef          _Sequence                            container_type;
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // DR 2684. priority_queue lacking comparator typedef
(Continue reading)

François Dumont | 22 May 17:21 2016
Picon

Debug iterator cleanup

Hi

     I just want to make sure that you agree that I can remove the  <at> todo 
by implementing operator-> this way.

     * include/debug/safe_iterator.h
     (_Safe_iterator<>::operator->()): Implement using underlying iterator
     operator ->.
     * include/debug/safe_local_iterator.h
     (_Safe_local_iterator<>::operator->()): Likewise.

François
Attachment (debug_iterator.patch): text/x-patch, 1625 bytes
Pavel P | 20 May 04:46 2016
Picon

Issues with unordered_map and unordered_multimap

Hi,

I noticed that unordered_map with g++ (4.7 or 5.2) cannot be used with
forward declared types:

#include <unordered_map>

class test;
typedef std::unordered_map<int, test> test_map;
typedef test_map::iterator test_map_iterator;  // <== error

here's error output: https://ideone.com/sy05RG

This same code works with std::map: https://ideone.com/poufNk
As far as I understand standard doesn't require that it would work,
still I think it would be nice that it worked similar to std::map. It
works ok with MSVC by the way.

The other issue is with unordered_multimap. Not sure what's going on
behind the scenes, but it was exceptionally slow in my case, and
unorderedmap::operator[] was taking like 80% of CPU in my app. I ended
up replacing it with unordered_map<lkey, list<value> > to solve it.

Any ideas?.

Thanks,
Pavel

Tim Shen | 16 May 05:56 2016
Picon

[Patch] Implement std::experimental::variant

Hi,

I have implemented
p0088r2<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r2.html>.

The interface is massive and the sfinae conditions are complicated, so
I won't be surprised that I made mistakes on interface conformance
(especially for uses-allocator constructors).

I didn't document the public interfaces, since they may still change;
I'll document them if it's preferred. Important implementations are
documented though.

Currently it's in std::experimental::fundamentals_v1. Is there a
better place to put it in?

Thank you!

--

-- 
Regards,
Tim Shen
commit 5d50b1181882e3df43c675acc11e5b013a9af31c
Author: Tim Shen <timshen <at> google.com>
Date:   Sun May 15 18:21:39 2016 -0700

    2016-05-15  Tim Shen  <timshen <at> google.com>
    
    	* include/Makefile.am: Add new file.
(Continue reading)

Jonathan Wakely | 10 May 17:53 2016
Picon
Gravatar

[PATCH] Test begin and end functions for directory iterators

A minor fix for missing noexcept qualifiers, pointed out by Eric
again.

	* include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
	Test begin and end functions.
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: Likewise.

Tested x86_64-linux and x86_64-freebsd10, committed to trunk.
Backports to follow.

commit 2f45dbbd2c3f01a1dcdee4c265dc394561f42606
Author: redi <redi <at> 138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue May 10 15:39:20 2016 +0000

    Test begin and end functions for directory iterators

    	* include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
    	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
    	Test begin and end functions.
    	* testsuite/experimental/filesystem/iterators/
    	recursive_directory_iterator.cc: Likewise.

    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk <at> 236085 138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/libstdc++-v3/include/experimental/bits/fs_dir.h b/libstdc++-v3/include/experimental/bits/fs_dir.h
index 011d398..70a95eb 100644
(Continue reading)

Jonathan Wakely | 10 May 15:50 2016
Picon
Gravatar

[PATCH] libstdc++/71036 Handle EEXIST in filesystem::create_directory

Another bug Eric noticed. I had tests for create_directories() but not
create_directory(), and the former was already checking whether it
existed or not, so I didn't notice this bug.

	PR libstdc++/71036
	* src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
	* testsuite/experimental/filesystem/operations/create_directory.cc:
	New test.

Tested x86_64-linux, committed to trunk. Backports to follow.

commit 50e15efafef5fd7893ff186546e755a6530c348a
Author: redi <redi <at> 138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue May 10 13:04:21 2016 +0000

    libstdc++/71036 Handle EEXIST in filesystem::create_directory

    	PR libstdc++/71036
    	* src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
    	* testsuite/experimental/filesystem/operations/create_directory.cc:
    	New test.

    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk <at> 236076 138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc
index e18c751..fab4235 100644
--- a/libstdc++-v3/src/filesystem/ops.cc
+++ b/libstdc++-v3/src/filesystem/ops.cc
(Continue reading)


Gmane