Non-lethal compiler errors after updating to IDE 1.8.4

After updating from IDE 1.6.11 to IDE 1.8.4 the compiler has started to complain about stuff that were accepted before.
My Additional Boards Manager URLs: http://arduino.esp8266.com/stable/package_esp8266com_index.json
The IDE is installed on a Windows 7 professional OS.

The first current errors are:

In file included from C:\Users\Thomas\Documents\Arduino\wemos ex\MAX44009-1_OTA_json\MAX44009-1_OTA_json.ino:3:0:

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266mDNS/ESP8266mDNS.h:66:8: warning: unused parameter 'ip' [-Wunused-parameter]

   bool begin(const char* hostName, IPAddress ip, uint32_t ttl=120){

        ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266mDNS/ESP8266mDNS.h:66:8: warning: unused parameter 'ttl' [-Wunused-parameter]
C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Wire\Wire.cpp:73:6: warning: unused parameter 'address' [-Wunused-parameter]

 void TwoWire::begin(uint8_t address){

      ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Wire\Wire.cpp:207:6: warning: unused parameter 'inBytes' [-Wunused-parameter]

 void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes)

      ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Wire\Wire.cpp:207:6: warning: unused parameter 'numBytes' [-Wunused-parameter]

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Wire\Wire.cpp:244:6: warning: unused parameter 'function' [-Wunused-parameter]

 void TwoWire::onReceive( void (*function)(int) ){

      ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Wire\Wire.cpp:248:6: warning: unused parameter 'function' [-Wunused-parameter]

 void TwoWire::onRequest( void (*function)(void) ){

      ^
C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp:155:127: warning: unused parameter 'e' [-Wunused-parameter]

     WiFiEventHandler handler = std::make_shared<WiFiEventHandlerOpaque>(WIFI_EVENT_STAMODE_DHCP_TIMEOUT, [f](System_Event_t* e){

                                                                                                                               ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp:454:6: warning: unused parameter 'name' [-Wunused-parameter]

 void wifi_dns_found_callback(const char *name, ip_addr_t *ipaddr, void *callback_arg) {

      ^
In file included from C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClient.cpp:41:0:

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:250:15: warning: unused parameter 'pcb' [-Wunused-parameter]

         err_t _sent(tcp_pcb* pcb, uint16_t len) {

               ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'pcb' [-Wunused-parameter]

         recv_ret_t _recv(tcp_pcb* pcb, pbuf* pb, err_t err) {

                    ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'err' [-Wunused-parameter]

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:303:14: warning: unused parameter 'err' [-Wunused-parameter]

         void _error(err_t err) {

              ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:315:15: warning: unused parameter 'pcb' [-Wunused-parameter]

         err_t _poll(tcp_pcb* pcb) {

               ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClient.cpp:136:8: warning: unused parameter 'err' [-Wunused-parameter]

 int8_t WiFiClient::_connected(void* pcb, int8_t err)

        ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClient.cpp:145:6: warning: unused parameter 'err' [-Wunused-parameter]

 void WiFiClient::_err(int8_t err)

      ^
In file included from C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:40:0:

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:250:15: warning: unused parameter 'pcb' [-Wunused-parameter]

         err_t _sent(tcp_pcb* pcb, uint16_t len) {

               ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'pcb' [-Wunused-parameter]

         recv_ret_t _recv(tcp_pcb* pcb, pbuf* pb, err_t err) {

                    ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'err' [-Wunused-parameter]

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:303:14: warning: unused parameter 'err' [-Wunused-parameter]

         void _error(err_t err) {

              ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:315:15: warning: unused parameter 'pcb' [-Wunused-parameter]

         err_t _poll(tcp_pcb* pcb) {

               ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:182:27: warning: unused parameter 'fd' [-Wunused-parameter]

     static ClientContext* getIOContext(int fd) {

                           ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp: In function 'int ax_port_read(int, uint8_t*, size_t)':

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:539:53: warning: suggest parentheses around '&&' within '||' [-Wparentheses]

     if (!_client || _client->state() != ESTABLISHED && !_client->getSize()) {

                                                     ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp: At global scope:

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:567:16: warning: unused parameter 'filename' [-Wunused-parameter]

 extern "C" int ax_get_file(const char *filename, uint8_t **buf) {

                ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:579:18: warning: unused parameter 'file' [-Wunused-parameter]

 extern "C" void* ax_port_malloc(size_t size, const char* file, int line) {

                  ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:579:18: warning: unused parameter 'line' [-Wunused-parameter]

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:596:18: warning: unused parameter 'file' [-Wunused-parameter]

 extern "C" void* ax_port_realloc(void* ptr, size_t size, const char* file, int line) {

                  ^

C:\Users\Thomas\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:596:18: warning: unused parameter 'line' [-Wunused-parameter]

etc.

Many more like these. I imagine that there is some kind of sytematic problem which somebody with more experience than I have will spot pretty immideately …

Thank you for ‘listening’.

Some people have reported errors after upgrades to the IDE.

Sometimes (not always) it pays to clean up before an upgrade…
Attached help sheet.

Hopefully its is of use.

CLEAN UP BEFORE INSTALLING ANOTHER COPY OF THE IDE OR ARDUINO CREATE.pdf (345 KB)

Those are warnings, not errors. It's very important to understand the difference between the two. Warnings are intended to bring potential issues to your attention but don't necessarily indicate a real problem. You should always have warnings enabled and pay attention to them. Fix warnings in your own code whenever possible, which is almost always. Unfortunately some programmers don't hold their work to such a high standard so we end up stuck with errors in other people's code. The best solution would be to fix the errors and submit a pull request to the ESP8266 core for Arduino GitHub repository. Otherwise you just have to ignore them. This makes it really difficult to spot the warnings you need to pay attention to mixed with all the ones you need to ignore. Luckily with recent versions of the Arduino IDE you will not see the warnings caused by libraries on subsequent compilations because they are cached and thus not compiled again unless you modify them or change to a different board.

It's really unfortunate that the otherwise excellent ESP866 core has such a ridiculously huge number of warnings.

Thank you for the answers.
I am still puzzled that code that compiled without warnings or errors in an earlier version of the IDE generates many warnings after an IDE upgrade. My own code does not generate warnings or errors.

Did you previously have them turned off in File > Preferences > Compiler warnings?