kasjer opened a new pull request, #1737:
URL: https://github.com/apache/mynewt-nimble/pull/1737
This should fix compilation error when -O2 optimization is enabled. GCC
incorrectly detects problem.
This change adds asserts that convinces GCC that pre-condition will not
result in accessing memory out-of-bounds.
This also changes one condition that also contributes to make GCC convinced
that pre-condition are met.
Error: In function 'ble_store_config_delete_obj',
inlined from 'ble_store_config_delete_cccd' at
repos/apache-mynewt-nimble/nimble/host/store/config/src/ble_store_config.c:380:10,
inlined from 'ble_store_config_delete' at
repos/apache-mynewt-nimble/nimble/host/store/config/src/ble_store_config.c:542:14:
repos/apache-mynewt-nimble/nimble/host/store/config/src/ble_store_config.c:193:9:
error: 'memmove' offset [16, 31] is out of the bounds [0, 16] of object
'ble_store_config_cccds' with type 'struct ble_store_value_cccd[1]'
[-Werror=array-bounds]
193 | memmove(dst, src, move_count * value_size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
repos/apache-mynewt-nimble/nimble/host/store/config/src/ble_store_config.c:
In function 'ble_store_config_delete':
repos/apache-mynewt-nimble/nimble/host/store/config/src/ble_store_config.c:45:5:
note: 'ble_store_config_cccds' declared here
45 | ble_store_config_cccds[MYNEWT_VAL(BLE_STORE_MAX_CCCDS)];
This should solve problem that #1693 tries to solve
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]