https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92739

            Bug ID: 92739
           Summary: [Trunk Regression] Requires clause followed by an
                    attribute no longer compiles
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cjdb.ns at gmail dot com
  Target Milestone: ---

Created attachment 47401
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47401&action=edit
Preprocessed file for broken build

The following code works in 466691493b9, but not in commits starting from Git
hash 6b42dfe4264.

```
template<typename T>
requires true
[[deprecated]] void f()
{}
```

# Diagnostic

test.cpp:2:1: error: expression must be enclosed in parentheses
    2 | requires true
      | ^~~~~~~~
test.cpp:2:10: error: expected unqualified-id before 'true'
    2 | requires true
      |          ^~~~

# Built using

/usr/local/bin/g++-10 -std=c++2a test.cpp

# System type

* Ubuntu 18.04 via WSL
* Ubuntu 18.04 via a Docker image

# GCC configured with

```
export CC=/usr/local/bin/gcc-10    \
       CXX=/usr/local/bin/g++-10   \
       CFLAGS='-O3 -DNDEBUG -g0'   \
       CXXFLAGS='-O3 -DNDEBUG -g0' \
       CPPFLAGS="$CXXFLAGS"
../gcc/configure --disable-multilib               \
                 --disable-nls                    \
                 --disable-bootstrap              \
                 --enable-languages=c,c++         \
                 --disable-werror                 \
                 --with-diagnostics-color=always  \
                 --with-ld=/usr/bin/gold
```

Reply via email to