<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/contrib/libc++/include, branch release/10.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F10.4.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F10.4.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2017-07-19T18:22:32Z</updated>
<entry>
<title>Pull in r229281 from upstream libc++ (by Larisse Voufo):</title>
<updated>2017-07-19T18:22:32Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2017-07-19T18:22:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=41f96d50815889cadb4363a09844c04684814ae6'/>
<id>urn:sha1:41f96d50815889cadb4363a09844c04684814ae6</id>
<content type='text'>
  Implement C++14's sized deallocation functions, since there are no
  longer implicitly defined by clang, as of r229241.

This allows ports which use C++14's sized deallocation functions, such
as cad/openvsp, to build on stable/10.  Bump __FreeBSD_version to allow
detection from ports.

Direct commit, since stable/11 and head already have newer versions of
libc++ which include this change.

PR:		219484
</content>
</entry>
<entry>
<title>MFC r317888 and two upstream prerequisites:</title>
<updated>2017-05-09T16:58:08Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2017-05-09T16:58:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=826cb3885762a976f7e04bd19061acb0e0359107'/>
<id>urn:sha1:826cb3885762a976f7e04bd19061acb0e0359107</id>
<content type='text'>
Pull in r227097 from upstream libc++ trunk (by Marshall Clow):

  Fix PR21428. Buffer was one byte too small in octal formatting case.
  Add test

Pull in r268009 from upstream libc++ trunk (by Eric Fiselier):

  Fix PR21428 for long. Buffer was one byte too small in octal
  formatting case. Rename previously added test

Pull in r302362 from upstream libc++ trunk (by me):

  Ensure showbase does not overflow do_put buffers

  Summary:
  In https://bugs.freebsd.org/207918, Daniel McRobb describes how using
  std::showbase with ostreams can cause truncation of unsigned long long
  when output format is octal.  In fact, this can even happen with
  unsigned int and unsigned long.

  To ensure this does not happen, add one additional character to the
  do_put buffers if std::showbase is on.  Also add a test case.

  Reviewers: EricWF, mclow.lists

  Reviewed By: EricWF

  Subscribers: cfe-commits, emaste

  Differential Revision: https://reviews.llvm.org/D32670

PR:		207918
</content>
</entry>
<entry>
<title>Pull in r283944 from upstream libc++ trunk (by Eric Fiselier):</title>
<updated>2017-03-24T18:28:13Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2017-03-24T18:28:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=28cca5d832a0abf15422d1ea68a4641fcb87de64'/>
<id>urn:sha1:28cca5d832a0abf15422d1ea68a4641fcb87de64</id>
<content type='text'>
  Fix std::pair on FreeBSD

  Summary:
  FreeBSD ships an old ABI for std::pair which requires that it have
  non-trivial copy/move constructors. Currently the non-trivial
  copy/move is achieved by providing explicit definitions of the
  constructors. This is problematic because it means the constructors
  don't SFINAE properly. In order to SFINAE copy/move constructors they
  have to be explicitly defaulted and hense non-trivial.

  This patch attempts to provide SFINAE'ing copy/move constructors for
  std::pair while still making them non-trivial. It does this by adding
  a base class with a non-trivial copy constructor and then allowing
  pair's constructors to be generated by the compiler. This also allows
  the constructors to be constexpr.

  Reviewers: emaste, theraven, rsmith, dim

  Subscribers: cfe-commits

  Differential Revision: https://reviews.llvm.org/D25389

This should fix building www/chromium 57.0.2987.110 on stable/10 and
stable/9 without having to use -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 (which
changes the ABI).  Direct commit to stable/10 and stable/9, since head
already has libc++ 4.0, which includes this fix.
</content>
</entry>
<entry>
<title>Pull in r242377 from upstream libc++ trunk (by Marshall Clow):</title>
<updated>2017-02-18T14:44:14Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2017-02-18T14:44:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=71714bfb285118a8e00101b8348f51e451c27c68'/>
<id>urn:sha1:71714bfb285118a8e00101b8348f51e451c27c68</id>
<content type='text'>
  Make sure that __libcpp_compressed_pair_imp default-constructs its'
  members, rather than value-initializing them. Fixes PR#24137

This ensures std::make_shared&lt;&gt;'s default constructor properly
initializes to zero.

Direct commit to stable/9 and stable/10, since stable/11 and head
already have a newer version of libc++, including this fix.

Reported by:	martin.beran@kernun.cz
PR:		217200
</content>
</entry>
<entry>
<title>Pull in r228705 from upstream libc++ trunk (by Eric Fiselier):</title>
<updated>2016-10-31T18:37:44Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2016-10-31T18:37:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=52948f29c218ce524a372a92b8e8fcf93f531f03'/>
<id>urn:sha1:52948f29c218ce524a372a92b8e8fcf93f531f03</id>
<content type='text'>
  [libcxx] Fix PR 22468 - std::function&lt;void()&gt; does not accept
  non-void-returning functions

  Summary:
  The bug can be found here: https://llvm.org/bugs/show_bug.cgi?id=22468

  `__invoke_void_return_wrapper` is needed to properly handle calling a
  function that returns a value but where the std::function return type
  is void. Without this '-Wsystem-headers' will cause
  `function::operator()(...)` to not compile.

  Reviewers: eugenis, K-ballo, mclow.lists

  Reviewed By: mclow.lists

  Subscribers: cfe-commits

  Differential Revision: https://reviews.llvm.org/D7444

This should allow newer versions of the graphics/aseprite port to
compile without modification.

Direct commit to stable/10, since stable/11 and head already have this
change.

Reported by:	yuri@rawbw.com
PR:		213773
</content>
</entry>
<entry>
<title>MFC r280864:</title>
<updated>2015-04-06T14:50:54Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2015-04-06T14:50:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e68b2ce611b8f959a7a9aaa164ab072d7d89ba15'/>
<id>urn:sha1:e68b2ce611b8f959a7a9aaa164ab072d7d89ba15</id>
<content type='text'>
Pull in r233552 from upstream libc++ trunk (by Eric Fiselier):

  [libcxx] Fix PR22771 - Support access control SFINAE in the library
  version of is_convertible.

  Summary:
  Currently the conversion check does not take place in a context where
  access control SFINAE is applied. This patch changes the context of
  the test expression so that SFINAE occurs if access control does not
  permit the conversion.

  Related bug: https://llvm.org/bugs/show_bug.cgi?id=22771

  Reviewers: mclow.lists, rsmith, dim

  Reviewed By: dim

  Subscribers: dim, rodrigc, emaste, cfe-commits

  Differential Revision: http://reviews.llvm.org/D8461

This fixes building clang, and other programs using libc++, with newer
versions of gcc (specifically, gcc 4.8 and higher).

Reported by:	rodrigc
</content>
</entry>
<entry>
<title>MFC r279757:</title>
<updated>2015-03-11T07:22:13Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2015-03-11T07:22:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c18abb86bb374f7fda30ac9b059e8cdc20c0592e'/>
<id>urn:sha1:c18abb86bb374f7fda30ac9b059e8cdc20c0592e</id>
<content type='text'>
Pull in r228344 from upstream libc++ trunk (by Eric Fiselier):

  Get tests running with warnings. Fix warnings in headers and tests

This fixes a number of -Wunused-local-typedef warnings in libc++ headers.

MFC r279758:

Fix another -Wunused-local-typedef warning in libc++, in include/__tree.
</content>
</entry>
<entry>
<title>Synchronize the default C++ stack in stable/10 with head, by merging</title>
<updated>2015-02-13T22:05:54Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2015-02-13T22:05:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=56aef3cfa6c49ca0e7cfa9698fae6a12c7f1e52d'/>
<id>urn:sha1:56aef3cfa6c49ca0e7cfa9698fae6a12c7f1e52d</id>
<content type='text'>
almost all recent changes to libc++ and libcxxrt.

MFC r256642:
  Since C++ typeinfo objects are currently not guaranteed to be merged at
  runtime by the dynamic linker, check for their equality in libcxxrt by
  not only comparing the typeinfo's name pointers, but also comparing the
  full names, if necessary.  (This is similar to what GNU libstdc++ does
  in its default configuration.)  The 'deep' check can be turned off again
  by defining LIBCXXRT_MERGED_TYPEINFO, and recompiling libcxxrt.

  Reviewed by:	theraven

MFC r270522 (by rdivacky):
  The standard we compile libc++ with is called c++11 not c++0x.

MFC r273066 (by bapt):
  Import patch from libc++ r197313 which allows using libc++ headers with gcc

  Differential Revision:	https://reviews.freebsd.org/D942
  Reviewed by:	imp

MFC r273381 (by bapt):
  Add support for __cxa_throw_bad_array_new_length in libcxxrt

  It is required for use with newer g++49

  Differential Revision:	https://reviews.freebsd.org/D982
  Reviewed by:	theraven
  Approved by:	theraven

MFC r273382 (by bapt):
  Fix build by marking the new functions as weak
  This is a temporary fix

MFC r273407 (by bapt):
  When using an external gcc 4.8+ and not building libstdc++ then create in the objectdir a
  fake libstdc++.so and libstdc++.a which is a symlink on libc++ that allow g++ to satisfy
  its links dependencies in the least hackish way.
  Please note that this hacky libstds++ never get installed on the final system

  Reviewed by:	imp

MFC r273434 (by bapt):
  Do not define bad_array_new_length::bad_array_new_length in libc++ anymore
  when used in combinaison with libcxxrt since it is now defined there already.
  This fixes building world

MFC r276417:
  Import libcxxrt master 00bc29eb6513624824a6d7db2ebc768a4216a604.

  Interesting fixes:
  76584a0  Reorganize code to use only 32bit atomic ops for 32bit platforms
  30d2ae5  Implement __cxa_throw_bad_array_new_length

  Reviewed by:	bapt
  Differential Revision: https://reviews.freebsd.org/D1390

MFC r277217:
  Import libc++ trunk r224926.  This fixes a number of bugs, completes
  C++14 support[1], adds more C++1z features[2], and fixes the following
  LWG issues[3]:

  1450: Contradiction in regex_constants
  2003: String exception inconsistency in erase.
  2075: Progress guarantees, lock-free property, and scheduling
	assumptions
  2104: unique_lock move-assignment should not be noexcept
  2112: User-defined classes that cannot be derived from
  2132: std::function ambiguity
  2135: Unclear requirement for exceptions thrown in
	condition_variable::wait()
  2142: packaged_task::operator() synchronization too broad?
  2182: Container::[const_]reference types are misleadingly specified
  2186: Incomplete action on async/launch::deferred
  2188: Reverse iterator does not fully support targets that overload
	operator&amp;
  2193: Default constructors for standard library containers are explicit
  2205: Problematic postconditions of regex_match and regex_search
  2213: Return value of std::regex_replace
  2240: Probable misuse of term "function scope" in [thread.condition]
  2252: Strong guarantee on vector::push_back() still broken with C++11?
  2257: Simplify container requirements with the new algorithms
  2258: a.erase(q1, q2) unable to directly return q2
  2263: Comparing iterators and allocator pointers with different
	const-character
  2268: Setting a default argument in the declaration of a member
	function assign of std::basic_string
  2271: regex_traits::lookup_classname specification unclear
  2272: quoted should use char_traits::eq for character comparison
  2278: User-defined literals for Standard Library types
  2280: begin / end for arrays should be constexpr and noexcept
  2285: make_reverse_iterator
  2288: Inconsistent requirements for shared mutexes
  2291: std::hash is vulnerable to collision DoS attack
  2293: Wrong facet used by num_put::do_put
  2299: Effects of inaccessible key_compare::is_transparent type are not
	clear
  2301: Why is std::tie not constexpr?
  2304: Complexity of count in unordered associative containers
  2306: match_results::reference should be value_type&amp;, not const
	value_type&amp;
  2308: Clarify container destructor requirements w.r.t. std::array
  2313: tuple_size should always derive from integral_constant&lt;size_t, N&gt;
  2314: apply() should return decltype(auto) and use decay_t before
	tuple_size
  2315: weak_ptr should be movable
  2316: weak_ptr::lock() should be atomic
  2317: The type property queries should be UnaryTypeTraits returning
	size_t
  2320: select_on_container_copy_construction() takes allocators, not
	containers
  2322: Associative(initializer_list, stuff) constructors are
	underspecified
  2323: vector::resize(n, t)'s specification should be simplified
  2324: Insert iterator constructors should use addressof()
  2329: regex_match()/regex_search() with match_results should forbid
	temporary strings
  2330: regex("meow", regex::icase) is technically forbidden but should
	be permitted
  2332: regex_iterator/regex_token_iterator should forbid temporary
	regexes
  2339: Wording issue in nth_element
  2341: Inconsistency between basic_ostream::seekp(pos) and
	basic_ostream::seekp(off, dir)
  2344: quoted()'s interaction with padding is unclear
  2346: integral_constant's member functions should be marked noexcept
  2350: min, max, and minmax should be constexpr
  2356: Stability of erasure in unordered associative containers
  2357: Remaining "Assignable" requirement
  2359: How does regex_constants::nosubs affect basic_regex::mark_count()?
  2360: reverse_iterator::operator*() is unimplementable

  [1] http://libcxx.llvm.org/cxx1y_status.html
  [2] http://libcxx.llvm.org/cxx1z_status.html
  [3] http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html

  Exp-run:	antoine

MFC r277944:
  Partially revert r273382, to reduce diffs against upstream.  This was a
  temporary fix to solve a conflict with an older version of libc++, and
  it is no longer relevant.

MFC r278010:
  Revert r256642, not only to reduce diffs against upstream libcxxrt, but
  also because it is the wrong approach: comparing typeinfo names deeply
  causes trouble if two loaded DSOs use independent types of the same
  name.

  In addition, this particular change was never merged to FreeBSD 10.x and
  9.x, so let's get rid of it before it ends up in an 11.x release.

  Discussed with:	theraven, joerg@netbsd

MFC r278016:
  Import libcxxrt master 1cb607e89f6135bbc10f3d3b6fba1f983e258dcc.

  Interesting fixes:
  1cb607e Correct gcc version check for __cxa_begin_catch() declaration
          with or without throw()
</content>
</entry>
<entry>
<title>MFC r276517:</title>
<updated>2015-01-17T12:54:02Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2015-01-17T12:54:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=dfc3b66ae778891517cc1f10ed2520f5a88c1841'/>
<id>urn:sha1:dfc3b66ae778891517cc1f10ed2520f5a88c1841</id>
<content type='text'>
Pull in r200010 from upstream libc++ trunk (by Marshall Clow):

  Rename some internal templates to avoid conflict with complier
  intrinsics. __is_constructible --&gt; __libcpp_is_constructible,
  __is_nothrow_constructible --&gt; __libcpp_is_nothrow_constructible, and
  __is_nothrow_assignable --&gt; __libcpp_is_nothrow_assignable. No
  functionality change.

Pull in r206805 from upstream libc++ trunk (by Marshall Clow):

  Use compiler intrinsic __is_constructible if available

This should fix building parts of world with -std=c++11 enabled.

Reported by:	Oliver Hartmann &lt;ohartman@zedat.fu-berlin.de&gt;
</content>
</entry>
<entry>
<title>MFC r275366:</title>
<updated>2014-12-04T01:21:56Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2014-12-04T01:21:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5275520d13f5a66d9b8f36a88880a862efc83214'/>
<id>urn:sha1:5275520d13f5a66d9b8f36a88880a862efc83214</id>
<content type='text'>
Pull in r209785 from upstream libc++ trunk (by Marshall Clow):

  Fix a problem exposed by r208825, which caused bind (and other bits of
  libc++) to stop working. And tests

This fix is needed to support clang 3.5.0 and higher, which are more
strict about forming pointer-to-function types with cv-qualifiers or
ref-qualifiers.  See also the upstream PR &lt;http://llvm.org/PR19742&gt; and
&lt;http://llvm.org/viewvc/llvm-project?rev=208825&amp;view=rev&gt;

Reported by:	amdmi3
</content>
</entry>
</feed>
