Кажется, бывают случаи, когда опция -fpermissive приводит к тому, что ошибки полностью игнорируются, а не «понижаются» до предупреждений, как предполагает широко доступная документация.
Опция -Wall явно недостаточна.Какие другие опции необходимы для того, чтобы все такие пониженные предупреждения сообщались g ++?
В качестве примера была предложена библиотека аддонов Nodejs C ++.
In file included from /opt/nodejs/linux64/8.9.4/include/node/node.h:63:0,
from /opt/nan/linux64/2.9.2/include/nan.h:51,
from /build/ndjs/include/blob.h:59,
from /build/ndjs/src/blob.cpp:2:
/opt/nodejs/linux64/8.9.4/include/node/v8.h: In instantiation of ‘v8::Local<T>::Local(v8::Local<S>) [with S = v8::Integer; T = v8::Int32]’:
/build/src/ndjs/blob.cpp:507:1: required from here
/opt/nodejs/linux64/8.9.4/include/node/v8.h:207:5: error: invalid conversion from ‘v8::Integer*’ to ‘v8::Int32*’ [-fpermissive]
TYPE_CHECK(T, S);
^
Перекомпиляция с -fpermissive (и, конечно, -Wall) приводит к чистой компиляции: вообще никаких предупреждений.Что случилось?Например, но каким-то образом успешно без предупреждений, когда действует -fpermissive.Разве не должно быть предупреждения о статическом понижении?