Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change declaration order to address GCC 12.1 error #18385

Merged

Conversation

agners
Copy link
Contributor

@agners agners commented May 12, 2022

Problem

GCC 12.1 complains:

../../src/messaging/ExchangeMgr.cpp: In constructor ‘chip::Messaging::ExchangeManager::ExchangeManager()’:
../../src/messaging/ExchangeMgr.cpp:62:58: error: member ‘chip::Messaging::ExchangeManager::mContextPool’ is used uninitialized [-Werror=uninitialized]
   62 | ExchangeManager::ExchangeManager() : mReliableMessageMgr(mContextPool)
      |                                                          ^~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: all warnings being treated as errors

Change overview

Make sure mContextPool comes before mReliableMessageMgr in the
declaration order.

Testing

Manually, just compiling.

GCC 12.1 complains:

```
../../src/messaging/ExchangeMgr.cpp: In constructor ‘chip::Messaging::ExchangeManager::ExchangeManager()’:
../../src/messaging/ExchangeMgr.cpp:62:58: error: member ‘chip::Messaging::ExchangeManager::mContextPool’ is used uninitialized [-Werror=uninitialized]
   62 | ExchangeManager::ExchangeManager() : mReliableMessageMgr(mContextPool)
      |                                                          ^~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: all warnings being treated as errors
```

Make sure mContextPool comes before mReliableMessageMgr in the
declaration order.
@agners
Copy link
Contributor Author

agners commented May 12, 2022

My C++ is not very fluent, but it seems declaration order matters? I wonder why this wasn't problematic before... Maybe compilers reordered based on member initializer list?
https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP53-CPP.+Write+constructor+member+initializers+in+the+canonical+order

@github-actions
Copy link

github-actions bot commented May 12, 2022

PR #18385: Size comparison from cb116b9 to 9fa372e

Increases (22 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, nrfconnect, p6, telink)
platform target config section cb116b9 9fa372e change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 691059 691099 40 0.0
.text 587492 587532 40 0.0
lock-ftd LP_CC2652R7 (read only) 678499 678539 40 0.0
.text 583216 583256 40 0.0
lock-mtd LP_CC2652R7 (read only) 627251 627291 40 0.0
.text 532072 532112 40 0.0
pump-app LP_CC2652R7 (read only) 663071 663111 40 0.0
.text 581596 581636 40 0.0
pump-controller-app LP_CC2652R7 (read only) 656263 656303 40 0.0
.text 571692 571732 40 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 627598 627654 56 0.0
.app_xip_area 530188 530244 56 0.0
lock cyw930739m2evb_01 (read/write) 626534 626590 56 0.0
.app_xip_area 530580 530636 56 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 575302 575366 64 0.0
.app_xip_area 469632 469696 64 0.0
efr32 lighting-app BRD4161A (read only) 909984 910016 32 0.0
.text 909976 910008 32 0.0
BRD4161A+rpc (read only) 944328 944360 32 0.0
.text 944320 944352 32 0.0
BRD4161A+rs911x (read only) 787724 787772 48 0.0
.text 787716 787764 48 0.0
lock-app BRD4161A+wf200 (read only) 946816 946864 48 0.0
.text 946808 946856 48 0.0
window-app BRD4161A (read only) 890288 890320 32 0.0
.text 890280 890312 32 0.0
esp32 all-clusters-app c3devkit (read only) 1001304 1001360 56 0.0
.flash.text 1001304 1001360 56 0.0
m5stack (read only) 1056067 1056103 36 0.0
.flash.text 1050683 1050719 36 0.0
k32w light k32w061+release (read/write) 685148 685196 48 0.0
.text 600176 600224 48 0.0
lock k32w061+release (read/write) 730492 730556 64 0.0
.text 645128 645192 64 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180143 1180191 48 0.0
text 809956 810008 52 0.0
p6 all-clusters-app default (read/write) 2531960 2532008 48 0.0
.text 1490224 1490272 48 0.0
light-app default (read/write) 2422016 2422064 48 0.0
.text 1380280 1380328 48 0.0
lock-app default (read/write) 2431544 2431592 48 0.0
.text 1389808 1389856 48 0.0
telink lighting-app tlsr9518adk80d (read/write) 806528 806592 64 0.0
text 572768 572826 58 0.0
Decreases (6 builds for cc13x2_26x2, linux)
platform target config section cb116b9 9fa372e change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 161292 161252 -40 -0.0
lock-ftd LP_CC2652R7 (read/write) 164956 164916 -40 -0.0
pump-app LP_CC2652R7 (read/write) 181672 181632 -40 -0.0
pump-controller-app LP_CC2652R7 (read/write) 188280 188240 -40 -0.0
linux bridge-app debug+rpc (read only) 1897401 1897385 -16 -0.0
.text 1612322 1612306 -16 -0.0
thermostat-no-ble arm64 (read only) 2370244 2370228 -16 -0.0
.text 1993376 1993360 -16 -0.0
Full report (34 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section cb116b9 9fa372e change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 691059 691099 40 0.0
(read/write) 161292 161252 -40 -0.0
.bss 75332 75332 0 0.0
.data 3412 3412 0 0.0
.rodata 103083 103083 0 0.0
.text 587492 587532 40 0.0
lock-ftd LP_CC2652R7 (read only) 678499 678539 40 0.0
(read/write) 164956 164916 -40 -0.0
.bss 73492 73492 0 0.0
.data 3236 3236 0 0.0
.rodata 94803 94803 0 0.0
.text 583216 583256 40 0.0
lock-mtd LP_CC2652R7 (read only) 627251 627291 40 0.0
(read/write) 146308 146308 0 0.0
.bss 69212 69212 0 0.0
.data 3236 3236 0 0.0
.rodata 94691 94691 0 0.0
.text 532072 532112 40 0.0
pump-app LP_CC2652R7 (read only) 663071 663111 40 0.0
(read/write) 181672 181632 -40 -0.0
.bss 73756 73756 0 0.0
.data 3268 3268 0 0.0
.rodata 80991 80991 0 0.0
.text 581596 581636 40 0.0
pump-controller-app LP_CC2652R7 (read only) 656263 656303 40 0.0
(read/write) 188280 188240 -40 -0.0
.bss 73812 73812 0 0.0
.data 3232 3232 0 0.0
.rodata 84087 84087 0 0.0
.text 571692 571732 40 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 627598 627654 56 0.0
.app_xip_area 530188 530244 56 0.0
.bss 80052 80052 0 0.0
.data 708 708 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 626534 626590 56 0.0
.app_xip_area 530580 530636 56 0.0
.bss 78628 78628 0 0.0
.data 672 672 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 575302 575366 64 0.0
.app_xip_area 469632 469696 64 0.0
.bss 88048 88048 0 0.0
.data 584 584 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 909984 910016 32 0.0
(read/write) 134520 134520 0 0.0
.bss 132456 132456 0 0.0
.data 2064 2064 0 0.0
.text 909976 910008 32 0.0
BRD4161A+rpc (read only) 944328 944360 32 0.0
(read/write) 151208 151208 0 0.0
.bss 148936 148936 0 0.0
.data 2268 2268 0 0.0
.text 944320 944352 32 0.0
BRD4161A+rs911x (read only) 787724 787772 48 0.0
(read/write) 129776 129776 0 0.0
.bss 127708 127708 0 0.0
.data 2068 2068 0 0.0
.text 787716 787764 48 0.0
lock-app BRD4161A+wf200 (read only) 946816 946864 48 0.0
(read/write) 124268 124268 0 0.0
.bss 122244 122244 0 0.0
.data 2024 2024 0 0.0
.text 946808 946856 48 0.0
window-app BRD4161A (read only) 890288 890320 32 0.0
(read/write) 134472 134472 0 0.0
.bss 132416 132416 0 0.0
.data 2052 2052 0 0.0
.text 890280 890312 32 0.0
esp32 all-clusters-app c3devkit (read only) 1001304 1001360 56 0.0
(read/write) 1475906 1475906 0 0.0
.dram0.bss 68464 68464 0 0.0
.dram0.data 14444 14444 0 0.0
.flash.rodata 208552 208552 0 0.0
.flash.text 1001304 1001360 56 0.0
.iram0.text 62020 62020 0 0.0
m5stack (read only) 1056067 1056103 36 0.0
(read/write) 478312 478312 0 0.0
.dram0.bss 73984 73984 0 0.0
.dram0.data 34184 34184 0 0.0
.flash.rodata 238308 238308 0 0.0
.flash.text 1050683 1050719 36 0.0
.iram0.text 123107 123107 0 0.0
k32w light k32w061+release (read/write) 685148 685196 48 0.0
.bss 81248 81248 0 0.0
.data 2020 2020 0 0.0
.text 600176 600224 48 0.0
lock k32w061+release (read/write) 730492 730556 64 0.0
.bss 81680 81680 0 0.0
.data 1980 1980 0 0.0
.text 645128 645192 64 0.0
linux all-clusters-app debug (read only) 2742761 2742761 0 0.0
(read/write) 174552 174552 0 0.0
.bss 83904 83904 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 82456 82456 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1008 1008 0 0.0
.rodata 236581 236581 0 0.0
.text 2330306 2330306 0 0.0
bridge-app debug+rpc (read only) 1897401 1897385 -16 -0.0
(read/write) 121080 121080 0 0.0
.bss 71520 71520 0 0.0
.data 3488 3488 0 0.0
.data.rel.ro 40712 40712 0 0.0
.dynamic 592 592 0 0.0
.got 4056 4056 0 0.0
.init 27 27 0 0.0
.init_array 688 688 0 0.0
.rodata 161721 161721 0 0.0
.text 1612322 1612306 -16 -0.0
chip-tool debug (read only) 9124389 9124389 0 0.0
(read/write) 577008 577008 0 0.0
.bss 22816 22816 0 0.0
.data 1136 1136 0 0.0
.data.rel.ro 546752 546752 0 0.0
.dynamic 624 624 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 648 648 0 0.0
.rodata 472373 472373 0 0.0
.text 7327557 7327557 0 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 8943276 8943276 0 0.0
(read/write) 643121 643121 0 0.0
.bss 41105 41105 0 0.0
.data 1192 1192 0 0.0
.data.rel.ro 582008 582008 0 0.0
.dynamic 560 560 0 0.0
.got 14976 14976 0 0.0
.init 24 24 0 0.0
.init_array 184 184 0 0.0
.rodata 439196 439196 0 0.0
.text 7044548 7044548 0 0.0
lighting-app debug+rpc (read only) 2331017 2331017 0 0.0
(read/write) 152032 152032 0 0.0
.bss 73568 73568 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 70664 70664 0 0.0
.dynamic 608 608 0 0.0
.got 4344 4344 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 185881 185881 0 0.0
.text 1977922 1977922 0 0.0
lock-app debug (read only) 2238505 2238505 0 0.0
(read/write) 146616 146616 0 0.0
.bss 72192 72192 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 67160 67160 0 0.0
.dynamic 592 592 0 0.0
.got 4336 4336 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 195689 195689 0 0.0
.text 1881922 1881922 0 0.0
ota-provider-app debug (read only) 2067289 2067289 0 0.0
(read/write) 139696 139696 0 0.0
.bss 71680 71680 0 0.0
.data 1736 1736 0 0.0
.data.rel.ro 60488 60488 0 0.0
.dynamic 608 608 0 0.0
.got 4504 4504 0 0.0
.init 27 27 0 0.0
.init_array 648 648 0 0.0
.rodata 176627 176627 0 0.0
.text 1732290 1732290 0 0.0
ota-requestor-app debug (read only) 2097537 2097537 0 0.0
(read/write) 142536 142536 0 0.0
.bss 72320 72320 0 0.0
.data 1992 1992 0 0.0
.data.rel.ro 62584 62584 0 0.0
.dynamic 592 592 0 0.0
.got 4344 4344 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 172924 172924 0 0.0
.text 1764754 1764754 0 0.0
shell debug (read only) 2567777 2567777 0 0.0
(read/write) 198288 198288 0 0.0
.bss 114408 114408 0 0.0
.data 1376 1376 0 0.0
.data.rel.ro 76744 76744 0 0.0
.dynamic 592 592 0 0.0
.got 4208 4208 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 218066 218066 0 0.0
.text 2186930 2186930 0 0.0
thermostat-no-ble arm64 (read only) 2370244 2370228 -16 -0.0
(read/write) 175153 175153 0 0.0
.bss 86417 86417 0 0.0
.data 1520 1520 0 0.0
.data.rel.ro 79408 79408 0 0.0
.dynamic 560 560 0 0.0
.got 4768 4768 0 0.0
.init 24 24 0 0.0
.init_array 376 376 0 0.0
.rodata 146980 146980 0 0.0
.text 1993376 1993360 -16 -0.0
tv-app debug (read only) 2855449 2855449 0 0.0
(read/write) 277472 277472 0 0.0
.bss 189624 189624 0 0.0
.data 4672 4672 0 0.0
.data.rel.ro 76928 76928 0 0.0
.dynamic 592 592 0 0.0
.got 4720 4720 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 218635 218635 0 0.0
.text 2453586 2453586 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2420356 2420356 0 0.0
.bss 205820 205820 0 0.0
.data 5872 5872 0 0.0
.text 1382956 1382956 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180143 1180191 48 0.0
bss 139680 139680 0 0.0
rodata 151792 151792 0 0.0
text 809956 810008 52 0.0
p6 all-clusters-app default (read/write) 2531960 2532008 48 0.0
.bss 139328 139328 0 0.0
.data 2808 2808 0 0.0
.text 1490224 1490272 48 0.0
light-app default (read/write) 2422016 2422064 48 0.0
.bss 132656 132656 0 0.0
.data 2608 2608 0 0.0
.text 1380280 1380328 48 0.0
lock-app default (read/write) 2431544 2431592 48 0.0
.bss 132472 132472 0 0.0
.data 2568 2568 0 0.0
.text 1389808 1389856 48 0.0
telink lighting-app tlsr9518adk80d (read/write) 806528 806592 64 0.0
bss 72176 72176 0 0.0
noinit 40416 40416 0 0.0
text 572768 572826 58 0.0

Copy link
Contributor

@bzbarsky-apple bzbarsky-apple left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a very useful error.

@andy31415 andy31415 merged commit da2df99 into project-chip:master May 13, 2022
@agners agners deleted the address-gcc-12.1-compile-issue branch June 29, 2022 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants