Per g cc Страница man:
-fpermissive
Понизить некоторые диагностики несоответствующего кода с ошибок до предупреждений. Таким образом, использование -fpermissive позволяет компилировать некоторый несоответствующий код.
Таким образом, теоретически можно разрешить компиляцию раздела как разрешающего, используя последовательность g cc предупреждений:
// Start permissive code
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-result"
#pragma GCC diagnostic ignored "-Wuninitialized"
// .. Other #pragmas
// Permissive Code here.
// Restore normal processing.
#pragma GCC diagnostic pop
Одна из проблем заключается в том, что нет опубликованного списка ошибок, которые будут игнорироваться с помощью -fpermissive
(по крайней мере, я не смог его найти). Один из возможных подходов состоит в том, чтобы скомпилировать код и вводить '# pragma's по одному за раз, пока код не будет скомпилирован правильно.
Если можно определить все (или большинство) правил, можно поставить их в файл #include.
#pragma GCC diagostic push
#include "permissive.h"
// Permissive Code here
#pragma GCC diagostic pop