Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1971443

Summary: clang / libstdc++: missing typename when compiling with <ranges> and -std=c++2a
Product: [Fedora] Fedora Reporter: Marián Konček <mkoncek>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 34CC: aoliva, avi.kivity, dmalcolm, fweimer, jakub, jwakely, law, mpolacek, msebor, nickc, sipoyare
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Marián Konček 2021-06-14 05:58:33 UTC
Compile the following file:
```
#include <ranges>
int main() {}
```

using:
$ clang++ -std=c++2a file.cpp

You will get an error:

/usr/lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/ranges:3466:19: error: missing 'typename' prior to dependent type name 'iterator_traits<iterator_t<_Base>>::iterator_category'
            using _Cat = iterator_traits<iterator_t<_Base>>::iterator_category;

This renders clang unusable for any code that includes ranges and compiles with c++20 flags because clang hasn't implemented P0634R3.

The very simple fix is to add Fedora-speciffic patch which simply adds the typename into libstdc++.

Comment 1 Jonathan Wakely 2021-06-14 09:05:30 UTC
(In reply to Marián Konček from comment #0)
> The very simple fix is to add Fedora-speciffic patch which simply adds the
> typename into libstdc++.

No, because Fedora's policy is upstream first (and it's already fixed upstream).

Comment 2 Jonathan Wakely 2021-07-12 09:45:20 UTC
*** Bug 1981085 has been marked as a duplicate of this bug. ***