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