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

Fix compile error on older g++ #34630

Merged
merged 1 commit into from
Jul 30, 2024

Conversation

tcarmelveilleux
Copy link
Contributor

  • Older g++ in Ubuntu 20.04LTS seems to have issues with invalidly doing integer promotion in some cases where it otherwise should not happen. This broke for some developers with:
../../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp: In member function ‘void chip::app::Clusters::WaterHeaterManagement::WaterHeaterManagementDelegate::DrawOffHotWater(chip::Percent, uint16_t)’:
../../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp:306:29: error: conversion from ‘int’ to ‘chip::Percent’ {aka ‘unsigned char’} may change value [-Werror=conversion]
  306 |             mTankPercentage -= percentageReplaced;
      |             ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
At global scope:
cc1plus: error: unrecognized command line option ‘-Wno-unknown-warning-option’ [-Werror]
cc1plus: all warnings being treated as errors
[17/171] c++ obj/third_party/connectedhomeip/examples/energy-management-app/energy-management-common/src/chip-all-clusters-common.device-energy-management-mode.cpp.o
ninja: build stopped: subcommand failed.
  • This PR fixes the issue (validated with one such user).

- Older g++ in Ubuntu 20.04LTS seems to have issues
  with invalidly doing integer promotion in some cases
  where it otherwise should not happen. This broke for some developers
  with:

```
../../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp: In member function ‘void chip::app::Clusters::WaterHeaterManagement::WaterHeaterManagementDelegate::DrawOffHotWater(chip::Percent, uint16_t)’:
../../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp:306:29: error: conversion from ‘int’ to ‘chip::Percent’ {aka ‘unsigned char’} may change value [-Werror=conversion]
  306 |             mTankPercentage -= percentageReplaced;
      |             ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
At global scope:
cc1plus: error: unrecognized command line option ‘-Wno-unknown-warning-option’ [-Werror]
cc1plus: all warnings being treated as errors
[17/171] c++ obj/third_party/connectedhomeip/examples/energy-management-app/energy-management-common/src/chip-all-clusters-common.device-energy-management-mode.cpp.o
ninja: build stopped: subcommand failed.
```

- This PR fixes the issue (validated with one such user).
Copy link

Review changes with SemanticDiff.

@andy31415
Copy link
Contributor

Fast track compile error fix with manual compile validation from @sumaky

Copy link

github-actions bot commented Jul 30, 2024

PR #34630: Size comparison from 87393f8 to b517f2a

Full report (85 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 87393f8 b517f2a change % change
bl602 lighting-app bl602 FLASH 1277116 1277116 0 0.0
RAM 95888 95888 0 0.0
bl602+mfd FLASH 1291374 1291374 0 0.0
RAM 96040 96040 0 0.0
bl602+rpc FLASH 1316084 1316084 0 0.0
RAM 104312 104312 0 0.0
bl702 lighting-app bl702 FLASH 1098268 1098268 0 0.0
RAM 15241 15241 0 0.0
bl702+mfd FLASH 1108962 1108962 0 0.0
RAM 15385 15385 0 0.0
bl702+rpc FLASH 1188334 1188334 0 0.0
RAM 24237 24237 0 0.0
bl706-eth FLASH 881302 881302 0 0.0
RAM 27344 27344 0 0.0
bl706-wifi FLASH 1134400 1134400 0 0.0
RAM 14677 14677 0 0.0
bl702l lighting-app bl702l FLASH 1085422 1085422 0 0.0
RAM 21796 21796 0 0.0
bl702l+mfd FLASH 1096428 1096428 0 0.0
RAM 21948 21948 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 802336 802336 0 0.0
RAM 109844 109844 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 817028 817028 0 0.0
RAM 117444 117444 0 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 809008 809008 0 0.0
RAM 111724 111724 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 762772 762772 0 0.0
RAM 105864 105864 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 747424 747424 0 0.0
RAM 106056 106056 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 610150 610150 0 0.0
RAM 205380 205380 0 0.0
lock CC3235SF_LAUNCHXL FLASH 652630 652630 0 0.0
RAM 205620 205620 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 671393 671393 0 0.0
RAM 78348 78348 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 691245 691245 0 0.0
RAM 80980 80980 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 691245 691245 0 0.0
RAM 80980 80980 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 648181 648181 0 0.0
RAM 73416 73416 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 610033 610033 0 0.0
RAM 71340 71340 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629669 629669 0 0.0
RAM 73892 73892 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629669 629669 0 0.0
RAM 73892 73892 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 625745 625745 0 0.0
RAM 74356 74356 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 645453 645453 0 0.0
RAM 76908 76908 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 645453 645453 0 0.0
RAM 76908 76908 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 599461 599461 0 0.0
RAM 68364 68364 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 619321 619321 0 0.0
RAM 70996 70996 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 619321 619321 0 0.0
RAM 70996 70996 0 0.0
efr32 lighting-app BRD4187C FLASH 929424 929424 0 0.0
RAM 135148 135148 0 0.0
lock-app BRD4338a FLASH 735092 735092 0 0.0
RAM 208436 208436 0 0.0
window-app BRD4187C FLASH 1015188 1015188 0 0.0
RAM 127084 127084 0 0.0
esp32 all-clusters-app c3devkit DRAM 91564 91564 0 0.0
FLASH 1488774 1488774 0 0.0
IRAM 75570 75570 0 0.0
m5stack DRAM 118052 118052 0 0.0
FLASH 1557623 1557623 0 0.0
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4632 4632 0 0.0
FLASH 2729707 2729707 0 0.0
RAM 128272 128272 0 0.0
all-clusters-app debug unknown 5416 5416 0 0.0
FLASH 5969488 5969488 0 0.0
RAM 505944 505944 0 0.0
all-clusters-minimal-app debug unknown 5312 5312 0 0.0
FLASH 5333072 5333072 0 0.0
RAM 239632 239632 0 0.0
bridge-app debug unknown 5296 5296 0 0.0
FLASH 4710520 4710520 0 0.0
RAM 216960 216960 0 0.0
chip-tool debug unknown 5832 5832 0 0.0
FLASH 12396418 12396418 0 0.0
RAM 555418 555418 0 0.0
chip-tool-ipv6only arm64 unknown 20256 20256 0 0.0
FLASH 11084684 11084684 0 0.0
RAM 605296 605296 0 0.0
fabric-admin debug unknown 5672 5672 0 0.0
FLASH 11377277 11377277 0 0.0
RAM 552154 552154 0 0.0
fabric-bridge-app debug unknown 4568 4568 0 0.0
FLASH 4466508 4466508 0 0.0
RAM 202128 202128 0 0.0
lighting-app debug+rpc+ui unknown 5968 5968 0 0.0
FLASH 5644433 5644433 0 0.0
RAM 228048 228048 0 0.0
lock-app debug unknown 5232 5232 0 0.0
FLASH 4761306 4761306 0 0.0
RAM 203616 203616 0 0.0
ota-provider-app debug unknown 4608 4608 0 0.0
FLASH 4405696 4405696 0 0.0
RAM 197760 197760 0 0.0
ota-requestor-app debug unknown 4544 4544 0 0.0
FLASH 4543842 4543842 0 0.0
RAM 202296 202296 0 0.0
shell debug unknown 4176 4176 0 0.0
FLASH 3019005 3019005 0 0.0
RAM 158472 158472 0 0.0
thermostat-no-ble arm64 unknown 9344 9344 0 0.0
FLASH 4343564 4343564 0 0.0
RAM 242112 242112 0 0.0
tv-app debug unknown 5504 5504 0 0.0
FLASH 5987333 5987333 0 0.0
RAM 582208 582208 0 0.0
tv-casting-app debug unknown 5168 5168 0 0.0
FLASH 10599981 10599981 0 0.0
RAM 642200 642200 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1503716 1503716 0 0.0
RAM 227296 227296 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 901780 901780 0 0.0
RAM 142084 142084 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 967232 967232 0 0.0
RAM 141188 141188 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 836704 836704 0 0.0
RAM 140944 140944 0 0.0
nxp contact k32w0+release FLASH 576396 576396 0 0.0
RAM 70416 70416 0 0.0
k32w1+release FLASH 592104 592104 0 0.0
RAM 74456 74456 0 0.0
light k32w0+release FLASH 612024 612024 0 0.0
RAM 69920 69920 0 0.0
k32w1+release FLASH 676936 676936 0 0.0
RAM 83232 83232 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1628748 1628748 0 0.0
RAM 210760 210760 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1538468 1538468 0 0.0
RAM 207536 207536 0 0.0
light cy8ckit_062s2_43012 FLASH 1463124 1463124 0 0.0
RAM 200776 200776 0 0.0
lock cy8ckit_062s2_43012 FLASH 1460148 1460148 0 0.0
RAM 225120 225120 0 0.0
qpg lighting-app qpg6105+debug FLASH 655100 655100 0 0.0
RAM 105148 105148 0 0.0
lock-app qpg6105+debug FLASH 612536 612536 0 0.0
RAM 99632 99632 0 0.0
stm32 light STM32WB5MM-DK FLASH 477472 477472 0 0.0
RAM 144756 144756 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 619294 619294 0 0.0
RAM 50936 50936 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 673656 673656 0 0.0
RAM 149412 149412 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 769576 769576 0 0.0
RAM 110612 110612 0 0.0
bridge-app tlsr9258a FLASH 677908 677908 0 0.0
RAM 91624 91624 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620886 620886 0 0.0
RAM 50980 50980 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 706750 706750 0 0.0
RAM 74316 74316 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 619674 619674 0 0.0
RAM 145580 145580 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 805760 805760 0 0.0
RAM 99504 99504 0 0.0
lock-app-dfu tlsr9528a FLASH 652664 652664 0 0.0
RAM 67012 67012 0 0.0
ota-requestor-app tlsr9258a FLASH 695942 695942 0 0.0
RAM 91308 91308 0 0.0
pump-app-usb tlsr9518adk80d FLASH 630242 630242 0 0.0
RAM 55756 55756 0 0.0
pump-controller-app tlsr9518adk80d FLASH 607842 607842 0 0.0
RAM 53000 53000 0 0.0
shell tlsr9518adk80d FLASH 466794 466794 0 0.0
RAM 68660 68660 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627650 627650 0 0.0
RAM 52696 52696 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 651664 651664 0 0.0
RAM 56636 56636 0 0.0
thermostat tlsr9518adk80d FLASH 631430 631430 0 0.0
RAM 53376 53376 0 0.0
window-covering tlsr9118bdk40d FLASH 521804 521804 0 0.0
RAM 98536 98536 0 0.0
tizen all-clusters-app arm unknown 1588 1588 0 0.0
FLASH 1682740 1682740 0 0.0
RAM 51668 51668 0 0.0
chip-tool-ubsan arm unknown 2404 2404 0 0.0
FLASH 16453282 16453282 0 0.0
RAM 7226264 7226264 0 0.0

@mergify mergify bot merged commit ccd8da9 into project-chip:master Jul 30, 2024
69 checks passed
j-ororke pushed a commit to j-ororke/connectedhomeip that referenced this pull request Jul 31, 2024
- Older g++ in Ubuntu 20.04LTS seems to have issues
  with invalidly doing integer promotion in some cases
  where it otherwise should not happen. This broke for some developers
  with:

```
../../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp: In member function ‘void chip::app::Clusters::WaterHeaterManagement::WaterHeaterManagementDelegate::DrawOffHotWater(chip::Percent, uint16_t)’:
../../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp:306:29: error: conversion from ‘int’ to ‘chip::Percent’ {aka ‘unsigned char’} may change value [-Werror=conversion]
  306 |             mTankPercentage -= percentageReplaced;
      |             ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
At global scope:
cc1plus: error: unrecognized command line option ‘-Wno-unknown-warning-option’ [-Werror]
cc1plus: all warnings being treated as errors
[17/171] c++ obj/third_party/connectedhomeip/examples/energy-management-app/energy-management-common/src/chip-all-clusters-common.device-energy-management-mode.cpp.o
ninja: build stopped: subcommand failed.
```

- This PR fixes the issue (validated with one such user).
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.

4 participants