<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/libcxx/include/stdexcept, 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-03-06T20:31:57+00:00</updated>
<entry>
<title>Fix ABI compatibility of `&lt;stdexcept&gt;` with VCRuntime.</title>
<updated>2019-03-06T20:31:57+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2019-03-06T20:31:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2710d8e105a683656cdaa825b6c0af46ae25f8ae'/>
<id>urn:sha1:2710d8e105a683656cdaa825b6c0af46ae25f8ae</id>
<content type='text'>
Summary:
Currently, libc++'s `&lt;stdexcept&gt;` doesn't play nice with `vcruntime`. Specifically:

* `logic_error` and `runtime_error` have a different layout.
* libc++'s `logic_error` and `runtime_error` override `what()` but `vcruntime` does not.
*  `vcruntime` uses weak vtables for `&lt;stdexcept&gt;` types.
* libc++'s `&lt;stdexcept&gt;` constructors and assignment operators may have different manglings than `vcruntimes`.

This patch makes libc++'s declarations in `&lt;stdexcept&gt;` match those provided by MSVC's STL as closely as possible.
If MSVC doesn't declare a special member, then neither do we. This ensures that the implicit definitions have the same linkage, visibility, triviality, and noexcept-ness.







Reviewers: thomasanderson, ldionne, smeenai

Reviewed By: thomasanderson

Subscribers: jdoerfert, libcxx-commits

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

llvm-svn: 355546
</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>
<entry>
<title>[NFC][libc++] Consistently use spaces to indent</title>
<updated>2018-08-03T22:36:53+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2018-08-03T22:36:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=7c3492b00d99c81d4a58a8015dbe313eabaea799'/>
<id>urn:sha1:7c3492b00d99c81d4a58a8015dbe313eabaea799</id>
<content type='text'>
rdar://problem/19988944

llvm-svn: 338933
</content>
</entry>
<entry>
<title>[libc++] Take 2: Replace uses of _LIBCPP_ALWAYS_INLINE by _LIBCPP_INLINE_VISIBILITY</title>
<updated>2018-07-11T23:14:33+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2018-07-11T23:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=dc7200b486b6c5b5229abcee97c160145cc3d955'/>
<id>urn:sha1:dc7200b486b6c5b5229abcee97c160145cc3d955</id>
<content type='text'>
Summary:
We never actually mean to always inline a function -- all the uses of
the macro I could find are actually attempts to control the visibility
of symbols. This is better described by _LIBCPP_INLINE_VISIBILITY, which
is actually always defined the same.

This change is orthogonal to the decision of what we're actually going
to do with _LIBCPP_INLINE_VISIBILITY -- it just simplifies things by
having one canonical way of doing things.

Note that this commit had originally been applied in r336369 and then
reverted in r336382 because of unforeseen problems. Both of these problems
have now been fixed.

Reviewers: EricWF, mclow.lists

Subscribers: christof, dexonsmith, erikvanderpoel

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

llvm-svn: 336866
</content>
</entry>
<entry>
<title>Revert "[libc++] Replace uses of _LIBCPP_ALWAYS_INLINE by _LIBCPP_INLINE_VISIBILITY"</title>
<updated>2018-07-05T18:41:50+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2018-07-05T18:41:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=195a499d638db5157a64c9c816b76154096ecd52'/>
<id>urn:sha1:195a499d638db5157a64c9c816b76154096ecd52</id>
<content type='text'>
This reverts commit r336369. The commit had two problems:
1. __pbump was marked as _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY instead of
   _LIBCPP_INLINE_VISIBILITY, which lead to two symbols being added in the
   dylib and the check-cxx-abilist failing.

2. The LLDB tests started failing because they undefine
   `_LIBCPP_INLINE_VISIBILITY`. I need to figure out why they do that and
   fix the tests before we can go forward with this change.

llvm-svn: 336382
</content>
</entry>
<entry>
<title>[libc++] Replace uses of _LIBCPP_ALWAYS_INLINE by _LIBCPP_INLINE_VISIBILITY</title>
<updated>2018-07-05T16:49:38+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2018-07-05T16:49:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4a8f3f994821e752319b9c76ed772ec0c40b5d03'/>
<id>urn:sha1:4a8f3f994821e752319b9c76ed772ec0c40b5d03</id>
<content type='text'>
Summary:
We never actually mean to always inline a function -- all the uses of
the macro I could find are actually attempts to control the visibility
of symbols. This is better described by _LIBCPP_INLINE_VISIBILITY, which
is actually always defined the same.

This change is orthogonal to the decision of what we're actually going
to do with _LIBCPP_INLINE_VISIBILITY -- it just simplifies things by
having one canonical way of doing things.

Reviewers: EricWF

Subscribers: christof, llvm-commits, dexonsmith, erikvanderpoel, mclow.lists

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

llvm-svn: 336369
</content>
</entry>
<entry>
<title>Fix more unreserved names</title>
<updated>2017-06-01T02:29:37+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2017-06-01T02:29:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=9ffacf3d16ae441780c89f6426994f0080192b4b'/>
<id>urn:sha1:9ffacf3d16ae441780c89f6426994f0080192b4b</id>
<content type='text'>
llvm-svn: 304383
</content>
</entry>
<entry>
<title>Fix unused parameters and variables</title>
<updated>2016-12-23T23:37:52+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2016-12-23T23:37:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=fd838227411f3ce1fa348f1d334266231bbcc84d'/>
<id>urn:sha1:fd838227411f3ce1fa348f1d334266231bbcc84d</id>
<content type='text'>
llvm-svn: 290459
</content>
</entry>
<entry>
<title>[libc++] Fix modules build - Rework __refstring definition </title>
<updated>2016-10-25T19:33:14+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2016-10-25T19:33:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a624409cb54230d304a2c6e19209176166b49085'/>
<id>urn:sha1:a624409cb54230d304a2c6e19209176166b49085</id>
<content type='text'>
Summary:
`__libcpp_refstring` currently has two different definitions. First there is the complete definition in `&lt;__refstring&gt;` but there is also a second in  `&lt;stdexcept&gt;`.  The historical reason for this split is because both libc++ and libc++abi need to see the inline definitions of __libcpp_refstrings methods, but the `&lt;stdexcept&gt;` header doesn't.  However this is an ODR violation and breaks the modules build.

This patch fixes the issue by creating a single class definition in `&lt;stdexcept&gt;` and changing `&lt;__refstring&gt;` to contain only the inline method definitions. This way both `libcxx/src/stdexcept.cpp` and `libcxxabi/src/stdexcept.cpp` see the same declaration in `&lt;stdexcept&gt;` and definitions in `&lt;__refstring&gt;`

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

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

llvm-svn: 285100
</content>
</entry>
<entry>
<title>Try 2 - Remove &lt;cstdlib&gt; include from `&lt;exception&gt;`</title>
<updated>2016-09-06T21:25:27+00:00</updated>
<author>
<name>Eric Fiselier</name>
<email>eric@efcs.ca</email>
</author>
<published>2016-09-06T21:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b683ec20e4e1abc63778a7fff3506f4be8b15f37'/>
<id>urn:sha1:b683ec20e4e1abc63778a7fff3506f4be8b15f37</id>
<content type='text'>
This patch removes the `&lt;cstdlib&gt;` include from exception where it is no longer
needed. Unlike my previous attempt this patch also adds &lt;cstdlib&gt; where needed
in other headers like &lt;new&gt; and &lt;typeinfo&gt;.

This won't fix the Firefox build issues discussed on IRC but it is more correct
for libc++.

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