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 comparison of a nullable value to a non-nullable saved value. #21516

Merged

Conversation

woody-apple
Copy link
Contributor

The code generated for the case when a non-nullable value was saved via saveAs
and then a nullable value was being compared to it did not compile, because we
would try to do .IsNull() and .Value() on the non-nullable saved value.

The changes here check whether the saved value is actually nullable and generate
code accordingly, instead of assuming that if we're comparing a nullable to
something the something must also be nullable.

Problem

See above. This came up in #21361

Change overview

See above.

Testing

Verified that regenerating #21361 with this change makes it generate correct code.

…1507)

The code generated for the case when a non-nullable value was saved via saveAs
and then a nullable value was being compared to it did not compile, because we
would try to do .IsNull() and .Value() on the non-nullable saved value.

The changes here check whether the saved value is actually nullable and generate
code accordingly, instead of assuming that if we're comparing a nullable to
something the something must also be nullable.
@woody-apple woody-apple enabled auto-merge (squash) August 2, 2022 03:39
@woody-apple woody-apple merged commit 21c463e into sve Aug 2, 2022
@woody-apple woody-apple deleted the cherry-pick-97134c5bd28797e667bfbbc2bab61b9b723e92ae branch August 2, 2022 04:24
@github-actions
Copy link

github-actions bot commented Aug 2, 2022

PR #21516: Size comparison from 7571349 to 39cff88

Increases (1 build for esp32)
platform target config section 7571349 39cff88 change % change
esp32 all-clusters-app c3devkit (read only) 1024402 1024406 4 0.0
.flash.text 1024402 1024406 4 0.0
Decreases (1 build for telink)
platform target config section 7571349 39cff88 change % change
telink lighting-app tlsr9518adk80d text 584806 584802 -4 -0.0
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 7571349 39cff88 change % change
bl602 lighting-app bl602 (read/write) 1382266 1382266 0 0.0
.bss 117626 117626 0 0.0
.data 4480 4480 0 0.0
.text 1052380 1052380 0 0.0
bl602+rpc (read/write) 1427698 1427698 0 0.0
.bss 125066 125066 0 0.0
.data 4600 4600 0 0.0
.text 1084072 1084072 0 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 669707 669707 0 0.0
(read/write) 181676 181676 0 0.0
.bss 74276 74276 0 0.0
.data 3372 3372 0 0.0
.rodata 88467 88467 0 0.0
.text 580924 580924 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 635227 635227 0 0.0
(read/write) 157844 157844 0 0.0
.bss 73556 73556 0 0.0
.data 3372 3372 0 0.0
.rodata 77691 77691 0 0.0
.text 557212 557212 0 0.0
lock-ftd LP_CC2652R7 (read only) 672567 672567 0 0.0
(read/write) 169000 169000 0 0.0
.bss 71348 71348 0 0.0
.data 3296 3296 0 0.0
.rodata 76535 76535 0 0.0
.text 595552 595552 0 0.0
lock-mtd LP_CC2652R7 (read only) 655139 655139 0 0.0
(read/write) 182116 182116 0 0.0
.bss 67036 67036 0 0.0
.data 3296 3296 0 0.0
.rodata 101531 101531 0 0.0
.text 553128 553128 0 0.0
pump-app LP_CC2652R7 (read only) 681055 681055 0 0.0
(read/write) 161320 161320 0 0.0
.bss 71388 71388 0 0.0
.data 3296 3296 0 0.0
.rodata 88919 88919 0 0.0
.text 591652 591652 0 0.0
pump-controller-app LP_CC2652R7 (read only) 666631 666631 0 0.0
(read/write) 175880 175880 0 0.0
.bss 71524 71524 0 0.0
.data 3292 3292 0 0.0
.rodata 84743 84743 0 0.0
.text 581408 581408 0 0.0
shell LP_CC2652R7 (read only) 662414 662414 0 0.0
(read/write) 184488 184488 0 0.0
.bss 76596 76596 0 0.0
.data 3376 3376 0 0.0
.rodata 85446 85446 0 0.0
.text 576652 576652 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 583742 583742 0 0.0
.app_xip_area 460696 460696 0 0.0
.bss 65632 65632 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 589998 589998 0 0.0
.app_xip_area 462200 462200 0 0.0
.bss 70384 70384 0 0.0
.data 748 748 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 589458 589458 0 0.0
.app_xip_area 467220 467220 0 0.0
.bss 64880 64880 0 0.0
.data 688 688 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1088960 1088960 0 0.0
.bss 133268 133268 0 0.0
.data 2064 2064 0 0.0
.text 953608 953608 0 0.0
BRD4161A+rpc (read/write) 1143300 1143300 0 0.0
.bss 149948 149948 0 0.0
.data 2276 2276 0 0.0
.text 991056 991056 0 0.0
BRD4161A+rs911x (read/write) 974256 974256 0 0.0
.bss 161744 161744 0 0.0
.data 2048 2048 0 0.0
.text 810444 810444 0 0.0
lock-app BRD4161A+wf200 (read/write) 1130096 1130096 0 0.0
.bss 144400 144400 0 0.0
.data 2056 2056 0 0.0
.text 983620 983620 0 0.0
window-app BRD4161A (read/write) 1082252 1082252 0 0.0
.bss 134748 134748 0 0.0
.data 2092 2092 0 0.0
.text 945388 945388 0 0.0
esp32 all-clusters-app c3devkit (read only) 1024402 1024406 4 0.0
(read/write) 1487042 1487042 0 0.0
.dram0.bss 70336 70336 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 216672 216672 0 0.0
.flash.text 1024402 1024406 4 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1077855 1077855 0 0.0
(read/write) 489064 489064 0 0.0
.dram0.bss 75840 75840 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 247084 247084 0 0.0
.flash.text 1072471 1072471 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w0+release (read/write) 643352 643352 0 0.0
.bss 69720 69720 0 0.0
.data 2044 2044 0 0.0
.text 568860 568860 0 0.0
lock k32w0+release (read/write) 701496 701496 0 0.0
.bss 70184 70184 0 0.0
.data 2052 2052 0 0.0
.text 626532 626532 0 0.0
linux all-clusters-app debug (read only) 3012569 3012569 0 0.0
(read/write) 155752 155752 0 0.0
.bss 61952 61952 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 85384 85384 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 1152 1152 0 0.0
.rodata 271115 271115 0 0.0
.text 2562594 2562594 0 0.0
all-clusters-minimal-app debug (read only) 2854857 2854857 0 0.0
(read/write) 147488 147488 0 0.0
.bss 61152 61152 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 77992 77992 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1144 1144 0 0.0
.rodata 271307 271307 0 0.0
.text 2407298 2407298 0 0.0
bridge-app debug+rpc (read only) 2360265 2360265 0 0.0
(read/write) 127584 127584 0 0.0
.bss 50592 50592 0 0.0
.data 3600 3600 0 0.0
.data.rel.ro 67544 67544 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 824 824 0 0.0
.rodata 202152 202152 0 0.0
.text 1995106 1995106 0 0.0
chip-tool debug (read only) 10484785 10484785 0 0.0
(read/write) 629312 629312 0 0.0
.bss 24856 24856 0 0.0
.data 3266 3266 0 0.0
.data.rel.ro 594688 594688 0 0.0
.dynamic 608 608 0 0.0
.got 5088 5088 0 0.0
.init 27 27 0 0.0
.init_array 768 768 0 0.0
.rodata 538165 538165 0 0.0
.text 8499172 8499172 0 0.0
chip-tool-ipv6only arm64 (read only) 9889644 9889644 0 0.0
(read/write) 676865 676865 0 0.0
.bss 32897 32897 0 0.0
.data 3272 3272 0 0.0
.data.rel.ro 622200 622200 0 0.0
.dynamic 560 560 0 0.0
.got 13536 13536 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 470140 470140 0 0.0
.text 7841492 7841492 0 0.0
lighting-app debug+rpc (read only) 2582609 2582609 0 0.0
(read/write) 130232 130232 0 0.0
.bss 49728 49728 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72456 72456 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 912 912 0 0.0
.rodata 217744 217744 0 0.0
.text 2193794 2193794 0 0.0
lock-app debug (read only) 2571433 2571433 0 0.0
(read/write) 125568 125568 0 0.0
.bss 48256 48256 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69592 69592 0 0.0
.dynamic 608 608 0 0.0
.got 4464 4464 0 0.0
.init 27 27 0 0.0
.init_array 888 888 0 0.0
.rodata 235376 235376 0 0.0
.text 2169042 2169042 0 0.0
ota-provider-app debug (read only) 2351297 2351297 0 0.0
(read/write) 119048 119048 0 0.0
.bss 47808 47808 0 0.0
.data 1936 1936 0 0.0
.data.rel.ro 63416 63416 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 768 768 0 0.0
.rodata 208312 208312 0 0.0
.text 1979106 1979106 0 0.0
ota-requestor-app debug (read only) 2471873 2471873 0 0.0
(read/write) 126440 126440 0 0.0
.bss 50176 50176 0 0.0
.data 2240 2240 0 0.0
.data.rel.ro 68072 68072 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 211840 211840 0 0.0
.text 2087538 2087538 0 0.0
shell debug (read only) 2584345 2584345 0 0.0
(read/write) 141872 141872 0 0.0
.bss 57800 57800 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 77008 77008 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 1024 1024 0 0.0
.rodata 232338 232338 0 0.0
.text 2193778 2193778 0 0.0
thermostat-no-ble arm64 (read only) 2349420 2349420 0 0.0
(read/write) 141761 141761 0 0.0
.bss 55329 55329 0 0.0
.data 1672 1672 0 0.0
.data.rel.ro 75976 75976 0 0.0
.dynamic 560 560 0 0.0
.got 5016 5016 0 0.0
.init 24 24 0 0.0
.init_array 408 408 0 0.0
.rodata 139316 139316 0 0.0
.text 1972592 1972592 0 0.0
tv-app debug (read only) 3136329 3136329 0 0.0
(read/write) 257520 257520 0 0.0
.bss 167288 167288 0 0.0
.data 4736 4736 0 0.0
.data.rel.ro 78960 78960 0 0.0
.dynamic 608 608 0 0.0
.got 4848 4848 0 0.0
.init 27 27 0 0.0
.init_array 1072 1072 0 0.0
.rodata 255144 255144 0 0.0
.text 2691922 2691922 0 0.0
tv-casting-app debug (read only) 5388945 5388945 0 0.0
(read/write) 158728 158728 0 0.0
.bss 51384 51384 0 0.0
.data 2432 2432 0 0.0
.data.rel.ro 98504 98504 0 0.0
.dynamic 608 608 0 0.0
.got 4736 4736 0 0.0
.init 27 27 0 0.0
.init_array 1032 1032 0 0.0
.rodata 339185 339185 0 0.0
.text 4782466 4782466 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2453224 2453224 0 0.0
.bss 214548 214548 0 0.0
.data 5872 5872 0 0.0
.text 1415868 1415868 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180919 1180919 0 0.0
bss 143224 143224 0 0.0
rodata 143344 143344 0 0.0
text 815504 815504 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1160811 1160811 0 0.0
bss 142460 142460 0 0.0
rodata 134876 134876 0 0.0
text 804652 804652 0 0.0
p6 all-clusters-app default (read only) 881528 881528 0 0.0
(read/write) 1689268 1689268 0 0.0
.bss 149168 149168 0 0.0
.data 2648 2648 0 0.0
.text 1529064 1529064 0 0.0
all-clusters-minimal-app default (read only) 882248 882248 0 0.0
(read/write) 1633300 1633300 0 0.0
.bss 148448 148448 0 0.0
.data 2648 2648 0 0.0
.text 1473816 1473816 0 0.0
light-app default (read only) 890568 890568 0 0.0
(read/write) 1553348 1553348 0 0.0
.bss 140336 140336 0 0.0
.data 2440 2440 0 0.0
.text 1402184 1402184 0 0.0
lock-app default (read only) 886072 886072 0 0.0
(read/write) 1591988 1591988 0 0.0
.bss 144816 144816 0 0.0
.data 2456 2456 0 0.0
.text 1436328 1436328 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 800512 800512 0 0.0
bss 70808 70808 0 0.0
noinit 40416 40416 0 0.0
text 567942 567942 0 0.0
lighting-app tlsr9518adk80d (read/write) 820928 820928 0 0.0
bss 71652 71652 0 0.0
noinit 40416 40416 0 0.0
text 584806 584802 -4 -0.0

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.

2 participants