Следующая проблема наблюдается на g++-11, но отсутствует в g++-10: $ cat test.cpp include <iostream> using namespace std; int main() { cout << "42" << endl; return 0; } $ g++-11 -g -O1 -fprofile-generate --coverage test.cpp -o test [builder@localhost simpletest-11]$ ./test 42 $ ./test 42 $ g++-11 -g -O1 -fprofile-use --coverage test.cpp -o test $ rm test.gcda $ ./test 42 Aborted $ echo $? 134 Отладка в gdb: Program received signal SIGABRT, Aborted. 0x00007ffff7ba542c in ?? () (gdb) bt #0 0x00007ffff7ba542c in ?? () Backtrace stopped: Cannot access memory at address 0x7fffffffe0f0 (gdb) x/i 0x7fffffffe0f0 0x7fffffffe0f0: Cannot access memory at address 0x7fffffffe0f0 (gdb) x/i 0x00007ffff7ba542c => 0x7ffff7ba542c: Cannot access memory at address 0x7ffff7ba542c (gdb) Опция -g включалась для отладки и её наличие или отсутствие не влияет на проблему. Минимальный уровень оптимизации для проявления бага -O1, проявляется также на -O2 и -O3. Опции -fprofile-use и --coverage обязательны для воспроизведения проблемы. На аналогичной последовательности действий g++-10 генерирует корректно работающий код: $ ./test 42 $ echo $? 0 $ g++-11 --version g++-11 (GCC) 11.2.1 20210911 (ALT Sisyphus 11.2.1-alt1) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ g++-10 --version g++-10 (GCC) 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt6) Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. В общем, этот баг и словил simpletest, который не пересобирается сейчас в Сизифе. Мне придётся временно отключить эту проверку, но gcc нужно чинить.
Проявляется как минимум на на i586 и x86_64. На остальных архитектурах не проверялось.