Bug 40369 - missing 'typename' prior to dependent type name 'iterator_traits<iterator_t<_Base>>::iterator_category'
Summary: missing 'typename' prior to dependent type name 'iterator_traits<iterator_t<_...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libstdc++10-devel (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 critical
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL: https://gcc.gnu.org/bugzilla/show_bug...
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-04 18:48 MSK by Денис Назаров
Modified: 2021-07-06 22:56 MSK (History)
2 users (show)

See Also:


Attachments
Ranges patch (530 bytes, patch)
2021-07-04 18:48 MSK, Денис Назаров
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Денис Назаров 2021-07-04 18:48:48 MSK
Created attachment 9472 [details]
Ranges patch

Просьба собрать gcc 10.3.1 с приложенным патчем (alt-ranges.patch), т.к. после обновления gcc10 в Sisyphus до 10.3.1 перестал собираться rpcs3 с ошибкой

In file included from /usr/src/RPM/BUILD/rpcs3-0.0.17/3rdparty/yaml-cpp/src/convert.cpp:1:
In file included from /usr/bin/../lib64/gcc/x86_64-alt-linux/10/../../../../include/c++/10/algorithm:64:
In file included from /usr/bin/../lib64/gcc/x86_64-alt-linux/10/../../../../include/c++/10/bits/ranges_algo.h:35:
In file included from /usr/bin/../lib64/gcc/x86_64-alt-linux/10/../../../../include/c++/10/bits/ranges_algobase.h:38:
/usr/bin/../lib64/gcc/x86_64-alt-linux/10/../../../../include/c++/10/ranges:3528: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;
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Ошибка в файле /usr/include/c++/10/ranges в строке 3258, отсутствует ключевое слово typename перед iterator_traits.

На то что это ошибка указывает то, что в 2 других местах в этом фале iterator_traits всегда присвается перемененой с ключевым словом typename, а так же в предыдущей версии gcc10 (10.2.1) у аналогичных конструкций так же всегда было это ключевое слово. Плюс текст ошибки при сборке rpcs3 прямо на это указывает.
Comment 1 Dmitry V. Levin 2021-07-04 19:04:16 MSK
master commit: 5e2e15f212e2458a1258b8c856895c755460bc6b
gcc-11 commit: 23fa1e7eab7680ae0488b4c8802b0bcd8f78425d
Comment 2 Денис Назаров 2021-07-04 21:10:52 MSK
Да, достаточно вприцнипе сделать
git cherry-pick -X subtree=gcc 5e2e15f212e2458a1258b8c856895c755460bc6b
в ветку alt/gcc10 без патчей
Comment 3 Repository Robot 2021-07-06 04:03:09 MSK
gcc10-10.3.1-alt2 -> sisyphus:

 Mon Jul 05 2021 Gleb F-Malinovskiy <glebfm@altlinux> 10.3.1-alt2
 - Backported upstream PR:
   + libstdc++/100900: add missing typename for dependent type in
   ranges::elements_view (ALT#40369).