diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-08-05 13:34:00 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-08-05 15:16:58 +0100 |
commit | 7b1de3eb9ed3f8dde54732d88520292c5ad1157d (patch) | |
tree | 50945c8bc786a899aeae7355e645b3d2cda1a32f /libgcc/libgcov-util.c | |
parent | 72264a639729a5dcc21dbee304717ce22b338bfd (diff) | |
download | gcc-7b1de3eb9ed3f8dde54732d88520292c5ad1157d.zip gcc-7b1de3eb9ed3f8dde54732d88520292c5ad1157d.tar.gz gcc-7b1de3eb9ed3f8dde54732d88520292c5ad1157d.tar.bz2 |
libstdc++: Move attributes that follow requires-clauses [PR101782]
As explained in the PR, the grammar in the Concepts TS means that a [
token following a requires-clause is parsed as part of the
logical-or-expression rather than the start of an attribute. That makes
the following ill-formed when using -fconcepts-ts:
template<typename T> requires foo<T> [[nodiscard]] int f(T);
This change moves all attributes that follow a requires-clause to the
end of the function declarator.
Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:
PR libstdc++/101782
* include/bits/ranges_base.h (ranges::begin, ranges::end)
(ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
(ranges::empty, ranges::data): Move attribute to the end of
the declarator.
* include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
(common_iterator): Likewise for non-member operator functions.
* include/std/ranges (views::all, views::filter)
(views::transform, views::take, views::take_while, views::drop)
(views::drop_while, views::join, views::lazy_split)
(views::split, views::counted, views::common, views::reverse)
(views::elements): Likewise.
* testsuite/std/ranges/access/101782.cc: New test.
Diffstat (limited to 'libgcc/libgcov-util.c')
0 files changed, 0 insertions, 0 deletions