GCC 8 - это основной выпуск коллекции компиляторов GNU, впервые выпущенный в 2018 году.
1 ответ

Обнаружено разрушение стека, когда в функции, возвращающей non-void, нет оператора return

Я отлаживал сбой в программе, которая прерывается с ошибкой stack smashing detected, Я сузил аварию до одной функции: static ssize_t a (const char *x, const char *y, size_t z) { #ifdef SOME_FLAG return b(x, y, z); #endif } Поскольку я нигде не опред…
26 фев '19 в 17:31
1 ответ

Вектор должен иметь то же значение, что и его распределитель

Этот MCVE компилируется / работает с gcc 7.3: Пожалуйста, обратите внимание, что этот MCVE был значительно уменьшен, что позволяет воспроизводить ошибки, поэтому код в Allocator Шаблон не имеет смысла, но он не влияет на установку! #include <rege…
19 авг '18 в 17:45
0 ответов

Как правильно обновить gcc7.3 до gcc8 в Ubuntu 18.04.01 LTS?

В моем Ubuntu 18.04 LTS: marco@PC:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic У меня есть версия GCC 7.3.0: marco@PC:~$ gcc -v Using built-in specs. COLLECT_G…
01 сен '18 в 12:19
0 ответов

R не узнает мой альтернативный компилятор GCC после обновления конфигурации?

Я следовал этим инструкциям, чтобы заставить R использовать альтернативный компилятор GCC, который я установил на MacOS. Сборка пакетов R с использованием альтернативного GCC Как показывают базовые интернет-исследования (как мне сказали), компилятор…
15 сен '18 в 05:59
1 ответ

Как запретить сокет-серверу отключаться

Я написал код о сокетах, и я не могу предотвратить закрытие сервера, когда клиент отправляет сообщение или когда клиент делает CTRL + CСервер выключается. Server.c: #include <stdio.h> #include <string.h> #include <stdlib.h> #includ…
08 окт '18 в 11:28
1 ответ

C++ const_cast gcc 8.2.1 -Wignored-квалификаторы ошибка?

Следующая программа производит это с помощью gcc 8.2.1: предупреждение: классификаторы типов игнорируются в типе результата приведения [-Wignored-qualifiers] int * const ptrCast = const_cast(ptr); int main() { int i = 0; const int * const ptr = &amp…
18 дек '18 в 23:54
2 ответа

"Указатель на указатель на выпуск int"

Сегодня я попытался решить викторину отсюда, и когда я дошел до вопроса 3, появился следующий код: #include <stdlib.h> int main(void){ int *pInt; int **ppInt1; int **ppInt2; pInt = (int*)malloc(sizeof(int)); ppInt1 = (int**)malloc(10*sizeof(in…
06 июл '18 в 10:58
1 ответ

std::set с объектом производного класса, но компаратором базового класса с gcc8.1

Ах #ifndef _A__ #define _A__ class A { public: struct Less { bool operator() (const A* const &k1, const A* const &k2) const { return k1->_a < k2->_a; } }; A(int a) : _a(a) { ; } virtual ~A() { ; } private: int _a; }; #endif ЬН #ifnd…
17 июл '18 в 19:35
3 ответа

Google Sparsehash использует realloc() для типа, который нетривиально копируется

Рассмотрим эту простую программу: #include <string> #include <sparsehash/dense_hash_map> int main() { google::dense_hash_map<std::string, int> map; map["foo"] = 0; } Компиляция с GCC 8.2 и -Wclass-memaccess (или же -Wall) выдает пр…
21 сен '18 в 03:41
2 ответа

Почему в этой разборке стек увеличивается на 16 байт, когда у меня есть только одна 4-байтовая локальная переменная?

У меня возникают проблемы с пониманием того, почему компилятор решил сместить пространство стека так, как это было сделано с кодом, который я написал. Я играл с компилятором компилятора Годболта, чтобы изучить соглашение о вызовах Си, когда я придум…
16 янв '19 в 05:18
1 ответ

Объявление функции не является прототипом

Следующий код компилируется нормально: #include <stdio.h> #include <errno.h> #include <string.h> #include <stdlib.h> extern int errno ; int main ( void ) { FILE *fp; int errnum; fp = fopen ("testFile.txt", "rb"); if ( fp == N…
07 июл '18 в 11:23
1 ответ

Зависит ли поведение гарантированного разрешения копирования от существования определяемого пользователем конструктора копирования?

Следующий код ведет себя по-разному с или без пользовательского конструктора копирования в GCC 8.0.1: #include <cassert> struct S { int i; int *p; S() : i(0), p(&i) {} // S(const S &s) : i(s.i), p(&i) {} // #1 // S(const S &s) …
20 фев '18 в 06:34
0 ответов

Перейти на Restic на PowerPC 32bit

Кто-нибудь когда-нибудь пробовал и преуспел в создании Restic (написанного на Go) для PowerMac 7450 (означает 32 бита), он мне нужен на старом Mac Mini? Поскольку я читал, что gccgo может стать дорогой к успеху, а gccgo поставляется с gcc, я попытал…
01 июл '18 в 20:41
0 ответов

Общая библиотека __attribute__((contributor)) не может работать при сборке с gcc-8.2

Я использовал __attribute__((constructor)) в моей общей библиотеке в Linux, когда процесс использовал библиотеку посредством неявного вызова, он всегда получал ошибку сегментации, но явный вызов работает нормально, есть какие-нибудь советы? мой комп…
13 ноя '18 в 00:44
3 ответа

strncat Wformat-предупреждение о переполнении при использовании gcc 8.2.1

Я использую gcc 8.2.1 и пытаюсь собрать этот код: std::string dir = "Documents"; char * _tempname = static_cast <char*> (malloc( dir.length() + 14)); strncpy (_tempname, dir.c_str(), dir.length()+1 ); strncat (_tempname, "/hellooXXXXXX", 13); …
21 ноя '18 в 09:07
9 ответов

gcc-8 -Wringring-усечение, что является хорошей практикой?

GCC 8 добавил -Wstringop-truncation предупреждение. С https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82944: Предупреждение -Wstringop-truncation, добавленное в GCC 8.0 через r254630 для ошибки 81117, специально предназначено для выделения вероятного н…
06 май '18 в 09:44
1 ответ

C++17 файловая система, использующая nuwen MinGW в Windows 10

Я хотел опробовать новую библиотеку файловой системы на C++17, поэтому попытался скопировать пример std::filesystem::current_path с cppreference.com и скомпилировать его, используя последнюю версию (16.0) дистрибутива MinGW из nuwen.net на мой компь…
15 сен '18 в 07:14
1 ответ

gcc-8 Wstringop-усечение

Я пытаюсь исправить код C, где gcc-8 жалуется на усечение Wstringop (код здесь) При компиляции этого кода на сервере, который я не могу контролировать, я не могу ни добавить прагматические операторы, ни отключить диагностику усечения Wstringop, я по…
10 сен '18 в 20:40
0 ответов

gcc-8 -Wstringop-усечение - противоречивое поведение?

Я компилирую некоторый код C (предоставлю ссылку, если это действительно необходимо), используя GCC 8.2.0 в Linux и GCC 8.1.0 в Cygwin (последний - автоматическая сборка CI). В Linux все проходит нормально. На Cygwin я получаю, среди прочего, следую…
27 фев '19 в 09:35
0 ответов

Вывод аргументов шаблона для шаблонов классов, не работающих с gcc 8.1.0?

Я пытался создать вектор свойств. Этот вектор должен быть своего рода "меткой", которая поможет отличить другие кортежи. Этот простой фрагмент работает на clang 6.0 и не работает ни на одной из версий GCC (пробовал только 7.3.0, 8.1.0): #include &lt…
06 май '18 в 13:06