Fix '23_containers/span/at.cc' for '-fno-exceptions' configurations (was: [committed] libstdc++: Add std::span::at for C++26 (P2821R5))
Thomas Schwinge
thomas@codesourcery.com
Wed Nov 29 13:14:20 GMT 2023
Hi!
On 2023-11-21T16:10:17+0000, Jonathan Wakely <jwakely@redhat.com> wrote:
> Tested x86_64-linux. Pushed to trunk.
> --- /dev/null
> +++ b/libstdc++-v3/testsuite/23_containers/span/at.cc
Pushed to master branch commit 762b428815d4e762abdff5c1ffc1e9aa60da7870
"Fix '23_containers/span/at.cc' for '-fno-exceptions' configurations",
see attached.
Grüße
Thomas
> @@ -0,0 +1,36 @@
> +// { dg-do run { target c++26 } }
> +
> +#include <span>
> +#include <stdexcept>
> +#include <testsuite_hooks.h>
> +
> +void
> +test_at()
> +{
> + int arr[4]{0, 1, 2, 3};
> + std::span<int> s(arr);
> + VERIFY(s.at(2) == 2);
> +#if __cpp_exceptions
> + try {
> + s.at(4); // { dg-warning "ignoring return value" }
> + VERIFY(false);
> + } catch (const std::out_of_range&) {
> + }
> +#endif
> +
> + auto s2 = s.subspan(1, 2);
> + VERIFY(s2.at(0) == 1);
> + VERIFY(s2.at(1) == 2);
> +#if __cpp_exceptions
> + try {
> + s2.at(2); // { dg-warning "ignoring return value" }
> + VERIFY(false);
> + } catch (const std::out_of_range&) {
> + }
> +#endif
> +}
> +
> +int main()
> +{
> + test_at();
> +}
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-23_containers-span-at.cc-for-fno-exceptions-conf.patch
Type: text/x-diff
Size: 1862 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20231129/4e6bdc95/attachment.bin>
More information about the Libstdc++
mailing list