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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.