A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/crankyoldgit/IRremoteESP8266/issues/1699 below:

Reduce build warnings ( [-Wmissing-field-initializers] ) · Issue #1699 · crankyoldgit/IRremoteESP8266 · GitHub

Version/revision of the library used

v2.8.0

Describe the bug

Build warnings caused by initialization of a structure without the requisite fields in ir_Kelon.cpp line 443.

To Reproduce

Use the library. Enable all warnings in GCC via -Wall -Wextra.

Actual results Collapsed simplified build warnings
...\IRremoteESP8266\src\ir_Kelon.cpp: In member function
'stdAc::state_t IRKelonAc::toCommon(const stdAc::state_t*) const':

...\IRremoteESP8266\src\ir_Kelon.cpp:443:25: 
stdAc::state_t result{};
                      ^

warning: missing initializer for member 'stdAc::state_t::protocol'
warning: missing initializer for member 'stdAc::state_t::model'
warning: missing initializer for member 'stdAc::state_t::power'
warning: missing initializer for member 'stdAc::state_t::mode'
warning: missing initializer for member 'stdAc::state_t::degrees'
warning: missing initializer for member 'stdAc::state_t::celsius'
warning: missing initializer for member 'stdAc::state_t::fanspeed'
warning: missing initializer for member 'stdAc::state_t::swingv'
warning: missing initializer for member 'stdAc::state_t::swingh'
warning: missing initializer for member 'stdAc::state_t::quiet'
warning: missing initializer for member 'stdAc::state_t::turbo'
warning: missing initializer for member 'stdAc::state_t::econo'
warning: missing initializer for member 'stdAc::state_t::light'
warning: missing initializer for member 'stdAc::state_t::filter'
warning: missing initializer for member 'stdAc::state_t::clean'
warning: missing initializer for member 'stdAc::state_t::beep'
warning: missing initializer for member 'stdAc::state_t::sleep'
warning: missing initializer for member 'stdAc::state_t::clock'
Example code used

Any code using v2.8.0 of this library, when set to compile with all warnings, should expose this bug.

Expected behaviour

Libraries should build cleanly at all warning levels.

Output of raw data from [IRrecvDumpV2.ino]

N/A

What brand/model IR demodulator are you using?

N/A

Circuit diagram and hardware used (if applicable)

N/A

I have followed the steps in the Troubleshooting Guide & read the FAQ

Yes ... not applicable to this type of bug

Has this library/code previously worked as expected for you?

N/A ... first work to integrate this.

Other useful information

Proposed fix:
Just use the default constructor for stdAc::state_t:

Becomes:

This appears to have the correct results. The default constructor appears to zero-initialize all fields in the structure. Each of the embedded enum types, when set to zero, appears to have a reasonable value. And, the result is substantially identical to the expressed intent of the writer of this code.

I'll prep a PR for this....


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4