adafruit / Adafruit_CircuitPlayground

library for Circuit Playground board
171 stars 77 forks source link

Fix many uninitialized variable errors #65

Closed henrygab closed 1 year ago

henrygab commented 3 years ago

Variables are used uninitialized in at least two situations:

  1. When first frame is a rest frame (line 115)
  2. When first frame is either stop frame or silence (line 117)

It appears that zero-initialization is the correct fix. Verification is requested.

Compilation warnings

``` ...\utility\talkie.cpp: In member function 'void Adafruit_CPlay_Speaker::say(const uint8_t*)': ...\utility\talkie.cpp: Line 146 Char 3 warning: 'synthPeriod' may be used uninitialized in this function [-Wmaybe-uninitialized] 146 | if(synthPeriod) { // Voiced source | ^~ ...\utility\talkie.cpp: Line 155 Char 21 warning: 'synthK10' may be used uninitialized in this function [-Wmaybe-uninitialized] 155 | u0 -= ((synthK10 * x9) + | ^~~~~~~~ ...\utility\talkie.cpp: Line 156 Char 7 warning: 'synthK9' may be used uninitialized in this function [-Wmaybe-uninitialized] 156 | (synthK9 * x8)) >> 7; | ^~~~~~~ ...\utility\talkie.cpp: Line 158 Char 21 warning: 'synthK8' may be used uninitialized in this function [-Wmaybe-uninitialized] 158 | u0 -= ((synthK8 * x7 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 160 Char 21 warning: 'synthK7' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | u0 -= ((synthK7 * x6 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 162 Char 21 warning: 'synthK6' may be used uninitialized in this function [-Wmaybe-uninitialized] 162 | u0 -= ((synthK6 * x5 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 164 Char 21 warning: 'synthK5' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | u0 -= ((synthK5 * x4 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 166 Char 21 warning: 'synthK4' may be used uninitialized in this function [-Wmaybe-uninitialized] 166 | u0 -= ((synthK4 * x3 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 168 Char 21 warning: 'synthK3' may be used uninitialized in this function [-Wmaybe-uninitialized] 168 | u0 -= ((synthK3 * x2 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 150 Char 9 warning: 'synthEnergy' may be used uninitialized in this function [-Wmaybe-uninitialized] 150 | (uint32_t)synthEnergy) >> 8; | ^~~~~~~~~~~~~~~~~~~~~ ...\utility\talkie.cpp: Line 170 Char 21 warning: 'synthK2' may be used uninitialized in this function [-Wmaybe-uninitialized] 170 | u0 -= ((synthK2 * (int32_t)x1 ) >> 15); | ^~~~~~~ ...\utility\talkie.cpp: Line 172 Char 21 warning: 'synthK1' may be used uninitialized in this function [-Wmaybe-uninitialized] 172 | u0 -= ((synthK1 * (int32_t)x0 ) >> 15); | ^~~~~~~ ...\utility\talkie.cpp: In member function 'void Adafruit_CPlay_Speaker::say(const uint8_t*)': ...\utility\talkie.cpp: Line 146 Char 3 warning: 'synthPeriod' may be used uninitialized in this function [-Wmaybe-uninitialized] 146 | if(synthPeriod) { // Voiced source | ^~ ...\utility\talkie.cpp: Line 155 Char 21 warning: 'synthK10' may be used uninitialized in this function [-Wmaybe-uninitialized] 155 | u0 -= ((synthK10 * x9) + | ^~~~~~~~ ...\utility\talkie.cpp: Line 156 Char 7 warning: 'synthK9' may be used uninitialized in this function [-Wmaybe-uninitialized] 156 | (synthK9 * x8)) >> 7; | ^~~~~~~ ...\utility\talkie.cpp: Line 158 Char 21 warning: 'synthK8' may be used uninitialized in this function [-Wmaybe-uninitialized] 158 | u0 -= ((synthK8 * x7 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 160 Char 21 warning: 'synthK7' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | u0 -= ((synthK7 * x6 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 162 Char 21 warning: 'synthK6' may be used uninitialized in this function [-Wmaybe-uninitialized] 162 | u0 -= ((synthK6 * x5 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 164 Char 21 warning: 'synthK5' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | u0 -= ((synthK5 * x4 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 166 Char 21 warning: 'synthK4' may be used uninitialized in this function [-Wmaybe-uninitialized] 166 | u0 -= ((synthK4 * x3 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 168 Char 21 warning: 'synthK3' may be used uninitialized in this function [-Wmaybe-uninitialized] 168 | u0 -= ((synthK3 * x2 ) >> 7); | ^~~~~~~ ...\utility\talkie.cpp: Line 150 Char 9 warning: 'synthEnergy' may be used uninitialized in this function [-Wmaybe-uninitialized] 150 | (uint32_t)synthEnergy) >> 8; | ^~~~~~~~~~~~~~~~~~~~~ ...\utility\talkie.cpp: Line 170 Char 21 warning: 'synthK2' may be used uninitialized in this function [-Wmaybe-uninitialized] 170 | u0 -= ((synthK2 * (int32_t)x1 ) >> 15); | ^~~~~~~ ...\utility\talkie.cpp: Line 172 Char 21 warning: 'synthK1' may be used uninitialized in this function [-Wmaybe-uninitialized] 172 | u0 -= ((synthK1 * (int32_t)x0 ) >> 15); | ^~~~~~~ ```

henrygab commented 3 years ago

Note to self: consider also submitting PRs to following forks:

https://github.com/PaulStoffregen/Talkie/blob/master/Talkie.cpp https://github.com/adafruit/Talkie/blob/master/talkie.cpp https://github.com/going-digital/Talkie/blob/master/Talkie/talkie.cpp