LINUX.ORG.RU

Я нашел жука!!! gcc: internal compiler error: Segmentation fault

 ,


0

3

Даже не знаю, есть ли в этом вопрос, скорее констатация факта. Вот такой код пораждает ошибку:

    void tls_useWithWaitKorValue(
            map<auto, map<auto, MyList<auto>>> &mmm,
            const auto &key,
            const auto &spl,
            const auto &val,
            const auto &task) {

        map<auto, MyList<auto>> &mm = mmm[key];
        // auto &mm = mmm[key]; // такая замена компилится нормально

        MyList<auto> &list = mm[spl];
:77:34: internal compiler error: Segmentation fault
   77 |         map<auto, MyList<auto>> &mm = mmm[key];
      |                                  ^~
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.

Для проверки нужно бы обновить, может уже исправили, да только пока не до этого. Моя текущая версия 10.2.0-5ubuntu1~20.04.

Поздравляю! Теперь в godbolt свежие версии проверь. Если повторяется, закинь багрепорт.

hateyoufeel ★★★★★
()
Ответ на: комментарий от seiken

рОжать не проверяет «О» т.к. не под ударением. Лучше уж «рОды»

romanlinux ★★★
()
Ответ на: комментарий от seiken

Хорошо. Только порОждает, от слова рОжать.

Ну да, есть такое. Вы уже не первый, кто мне такое сообщает. Это началось еще со школы.

victor79 ★
() автор топика

Для проверки нужно бы обновить

Для проверки нужно бы сделать минимальный пример.

anonymous
()
Ответ на: комментарий от anonymous

ща обязательно кто-нибудь напишет коммент про rust/go/d.. wait, oh sh….

Нет, сейчас интересно посмотреть, как компилятор VS справляется. Я хотел было запустить у себя VS 2015, но там оценочный период закончился, и надо логиниться.

seiken ★★★★★
()
Ответ на: комментарий от anonymous

Кстати, командно строчный работает. Но во-первых, нужен полный компилируемый пример (в смысле, полный пример с т.з. синтаксиса, компилироваться он не обязан, раз тут крэш тестируется), тот огрызок на годболте gcc 10.2 не крэшит.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 2)
Ответ на: комментарий от seiken

тот огрызок на годболте gcc 10.2 не крэшит.

Крэшит.

anonymous
()
Ответ на: комментарий от seiken

Вот то что крашит, gcc 10.2.0, использование c++2a:

#include <vector>
#include <map>

using std::map;
using std::vector;

void run(map<auto, map<int, int>> &mm) {
    map<auto, int> &m = mm[1];
    // map<int, int> &m = mm[1]; // такая не крашит
    // auto &m = mm[1]; // и такая не крашит
}

int main() {
    map<int, map<int, int>> mm;
    run(mm);
    return 1;
}

../testCompileError/main.cpp: In instantiation of ‘void run(std::map<auto:11, std::map<int, int> >&) [with auto:11 = int]’:
../testCompileError/main.cpp:14:11:   required from here
../testCompileError/main.cpp:9:21: internal compiler error: Segmentation fault
    9 |     map<auto, int> &m = mm[1];
      |                     ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.
victor79 ★
() автор топика
Ответ на: комментарий от anonymous

Раньше ты пытался исправлять ошибки, а теперь быть тупым стало модно.

Если я исправлю написанное, то будет не понятно, про что вы говорите. А так да, слишком умным быть вредно, приходится притворяться.

victor79 ★
() автор топика
Ответ на: комментарий от anonymous
$ git show | head -3
commit 2bf9e68a9589f9d3ace3663a17ff923191144c3b
Author: Nathan Sidwell <nathan@acm.org>
Date:   Thu Feb 25 04:57:09 2021 -0800
$ ./g++ -fconcepts-ts test2.cpp
test2.cpp: In instantiation of ‘void run(std::map<auto:1, std::map<int, int> >&) [with auto:1 = int]’:
test2.cpp:17:11:   required from here
test2.cpp:10:21: internal compiler error: Segmentation fault
   10 |     map<auto, int> &m = mm[1];
      |                     ^
0x104975f crash_signal
        ../../gcc/toplev.c:327
0x96e8a4 tree_check(tree_node*, char const*, int, char const*, tree_code)
        ../../gcc/tree.h:3348
0x96e8a4 unify
        ../../gcc/cp/pt.c:23506
0x97017d unify
        ../../gcc/cp/pt.c:23888
0x65a6a9 try_class_unification
        ../../gcc/cp/pt.c:22856
0x9702da unify
        ../../gcc/cp/pt.c:23925
0x96a834 unify_one_argument
        ../../gcc/cp/pt.c:22074
0x96d299 type_unification_real
        ../../gcc/cp/pt.c:22193
0x949e8b do_auto_deduction(tree_node*, tree_node*, tree_node*, int, auto_deduction_context, tree_node*, int)
        ../../gcc/cp/pt.c:29546
0x7f87e9 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        ../../gcc/cp/decl.c:7724
0x952d1b tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/cp/pt.c:18341
0x94ce2e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/cp/pt.c:18498
0x967c6a instantiate_body
        ../../gcc/cp/pt.c:25869
0x969af2 instantiate_decl(tree_node*, bool, bool)
        ../../gcc/cp/pt.c:26156
0x99c87f instantiate_pending_templates(int)
        ../../gcc/cp/pt.c:26237
0x813cbd c_parse_final_cleanups()
        ../../gcc/cp/decl2.c:4962
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
xaizek ★★★★★
()
Ответ на: комментарий от victor79

Угу, я как-то поправил блогера, который написал «Растекаться мысЛью по древу». Он ответил, что он-то в курсе, но всякий раз, когда он пишет правильно, туча комментаторов начинает его «поправлять», поэтому он забил и пишет, как большинство…

hobbit ★★★★★
()

если ты крашишь компилятор, то ты на верном пути, молодец. попробуй кланг ещё крашнуть или мсвц. у гланга и гцц иногда внезапно обнаруживаются одинаковые баги.

anonymous
()
Ответ на: комментарий от victor79

Функция не нужна. Можешь просто перенести map<auto, int> &m = mm[1]; в main, так же будет крашиться.

anonymous
()
Ответ на: комментарий от anonymous

предмет, напоминающий,«вылы» может и «ражон», но че-т мне кажется ты все-таки про «вилы» и «рожон».

t184256 ★★★★★
()
Ответ на: комментарий от static_lab

держишь пос по-ветру? - молодец!

anonymous
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.