[libcxx] r294133 - Change the base class of std::bad_optional_access. This is a (subtle) ABI change, and is in response to http://http://wg21.link/LWG2806, which I *expect* to be adopted in Kona. I am making this change now in anticipation, and will get it into 4.0, because (a) 4.0 is the first release with std::optional, and (b) I don't want to make an ABI-change later, when the user base should be significantly larger. Note that I didn't change std::experimental::bad_optional_access, because that's sti...

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 6 14:11:58 PST 2017


I've merged this, together with your r294142, to 4.0 in r294249, as requested.

If I understand correctly, we should also merge Eric's follow-ups
r294138 and r294139, but I get merge conflicts for the Linux one so
I've asked about how to handle that.

Thanks,
Hans

On Sun, Feb 5, 2017 at 12:06 PM, Marshall Clow via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: marshall
> Date: Sun Feb  5 14:06:38 2017
> New Revision: 294133
>
> URL: http://llvm.org/viewvc/llvm-project?rev=294133&view=rev
> Log:
> Change the base class of std::bad_optional_access.  This is a (subtle) ABI change, and is in response to http://http://wg21.link/LWG2806, which I *expect* to be adopted in Kona. I am making this change now in anticipation, and will get it into 4.0, because (a) 4.0 is the first release with std::optional, and (b) I don't want to make an ABI-change later, when the user base should be significantly larger. Note that I didn't change std::experimental::bad_optional_access, because that's still specified to derive from std::logic_error.
>
> Modified:
>     libcxx/trunk/include/experimental/optional
>     libcxx/trunk/include/optional
>     libcxx/trunk/src/optional.cpp
>     libcxx/trunk/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp


More information about the cfe-commits mailing list