<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/libcxx/include/list, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2019-12-16T23:38:58+00:00</updated>
<entry>
<title>[libc++] Rework compressed pair constructors.</title>
<updated>2019-12-16T23:38:58+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2019-12-16T23:23:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=549545b64aab77d2a1784062451ee1c33f8324d2'/>
<id>urn:sha1:549545b64aab77d2a1784062451ee1c33f8324d2</id>
<content type='text'>
This patch de-duplicates most compressed pair constructors
to use the same code in C++11 and C++03.

Part of doing that is deleting the "__second_tag()" and replacing
it with a "__value_init_tag()" which has the same effect, but
allows for the removal of the special "one-arg" first element
constructor.

This patch is intended to have no semantic change.
</content>
</entry>
<entry>
<title>Rename __is_foo_iterator traits to reflect their Cpp17 nature.</title>
<updated>2019-11-18T06:49:32+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2019-11-18T06:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f82dba019253ced73ceadfde10e5f150bdb182f3'/>
<id>urn:sha1:f82dba019253ced73ceadfde10e5f150bdb182f3</id>
<content type='text'>
With the upcoming introduction of iterator concepts in ranges,
the meaning of "__is_contiguous_iterator" changes drastically.

Currently we intend it to mean "does it have this iterator category",
but it could now also mean "does it meet the requirements of this
concept", and these can be different.
</content>
</entry>
<entry>
<title>[NFC] Strip trailing whitespace from libc++</title>
<updated>2019-10-23T18:19:19+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2019-10-23T17:40:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6b77ebdc919d9212f50fd353b1da0d84d3815bf3'/>
<id>urn:sha1:6b77ebdc919d9212f50fd353b1da0d84d3815bf3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make forward_list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out</title>
<updated>2019-07-08T03:45:28+00:00</updated>
<author>
<name>Marshall Clow</name>
<email>mclow.lists@gmail.com</email>
</author>
<published>2019-07-08T03:45:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f814dcbafbabd46a1babaeabec6acc3b70951bf4'/>
<id>urn:sha1:f814dcbafbabd46a1babaeabec6acc3b70951bf4</id>
<content type='text'>
llvm-svn: 365290
</content>
</entry>
<entry>
<title>Make list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out</title>
<updated>2019-07-06T06:10:03+00:00</updated>
<author>
<name>Marshall Clow</name>
<email>mclow.lists@gmail.com</email>
</author>
<published>2019-07-06T06:10:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=1ab3fe8a7a6537f882bbb2dac72c479d05eb8c49'/>
<id>urn:sha1:1ab3fe8a7a6537f882bbb2dac72c479d05eb8c49</id>
<content type='text'>
llvm-svn: 365261
</content>
</entry>
<entry>
<title>Implement P0646R1: Erase-Like Algorithms Should Return size_type. Reviewed as https://reviews.llvm.org/D58332, and then updated because I rewrote a couple of those routines to eliminate some UB. Thanks to Zoe for tghe patch.</title>
<updated>2019-07-01T19:22:00+00:00</updated>
<author>
<name>Marshall Clow</name>
<email>mclow.lists@gmail.com</email>
</author>
<published>2019-07-01T19:22:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=24edf8ef4b5cbb8afabc081b9b196f05868a5364'/>
<id>urn:sha1:24edf8ef4b5cbb8afabc081b9b196f05868a5364</id>
<content type='text'>
llvm-svn: 364840
</content>
</entry>
<entry>
<title>Fix list/forward_list implementations of remove_if and unique to deal with predicates that are part of the sequence passed in. We already do this for remove.</title>
<updated>2019-04-16T22:11:26+00:00</updated>
<author>
<name>Marshall Clow</name>
<email>mclow.lists@gmail.com</email>
</author>
<published>2019-04-16T22:11:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=896b0c7b999fe5dbbac4401bde98454427137014'/>
<id>urn:sha1:896b0c7b999fe5dbbac4401bde98454427137014</id>
<content type='text'>
llvm-svn: 358534
</content>
</entry>
<entry>
<title>Remove exception throwing debug mode handler support.</title>
<updated>2019-03-18T21:50:12+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2019-03-18T21:50:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=61b302f94fd9983651bf210c8a1c0b116612022a'/>
<id>urn:sha1:61b302f94fd9983651bf210c8a1c0b116612022a</id>
<content type='text'>
Summary:
The reason libc++ implemented a throwing debug mode handler was for ease of testing. Specifically,
I thought that if a debug violation aborted, we could only test one violation per file. This made
it impossible to test debug mode. Which throwing behavior we could test more!

However, the throwing approach didn't work either, since there are debug violations underneath noexcept
functions. This lead to the introduction of `_NOEXCEPT_DEBUG`, which was only noexcept when debug
mode was off.

Having thought more and having grown wiser, `_NOEXCEPT_DEBUG` was a horrible decision. It was
viral, it didn't cover all the cases it needed to, and it was observable to the user -- at worst
changing the behavior of their program.

  This patch removes the throwing debug handler, and rewrites the debug tests using 'fork-ing' style
  death tests.

Reviewers: mclow.lists, ldionne, thomasanderson

Reviewed By: ldionne

Subscribers: christof, arphaman, libcxx-commits, #libc

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

llvm-svn: 356417
</content>
</entry>
<entry>
<title>[libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1</title>
<updated>2019-03-06T21:10:08+00:00</updated>
<author>
<name>Thomas Anderson</name>
<email>thomasanderson@google.com</email>
</author>
<published>2019-03-06T21:10:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=516d07de071114f24ebcd51b629df70d02f1398a'/>
<id>urn:sha1:516d07de071114f24ebcd51b629df70d02f1398a</id>
<content type='text'>
The issue is the following code:

    __cn1-&gt;__add(*__ip);
    (*__ip)-&gt;__c_ = __cn1;

`__ip` points into the array of iterators for container `__cn2`.  This code adds
the iterator to the array of iterators for `__cn1`, and updates the iterator to
point to the new container.

This code works fine, except when `__cn1` and `__cn2` are the same container.
`__cn1-&gt;__add()` might need to grow the array of iterators, and when it does,
`__ip` becomes invalid, so the second line becomes a use-after-free error.

Simply swapping the order of the above two lines is not sufficient, because of
the memmove() below.  The easiest and most performant solution is just to skip
touching any iterators if the containers are the same.

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

llvm-svn: 355550
</content>
</entry>
<entry>
<title>Update more file headers across all of the LLVM projects in the monorepo</title>
<updated>2019-01-19T10:56:40+00:00</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2019-01-19T10:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=57b08b0944046a6a57ee9b7b479181f548a5b9b4'/>
<id>urn:sha1:57b08b0944046a6a57ee9b7b479181f548a5b9b4</id>
<content type='text'>
to reflect the new license. These used slightly different spellings that
defeated my regular expressions.

We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351648
</content>
</entry>
</feed>
