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

Uninitialized variable in USB.cpp #11162

Open
1 task done
petersenm opened this issue Mar 22, 2025 · 0 comments
Open
1 task done

Uninitialized variable in USB.cpp #11162

petersenm opened this issue Mar 22, 2025 · 0 comments
Assignees

Comments

@petersenm
Copy link

Board

ESP32-S2

Device Description

Custom

Hardware Configuration

Custom

Version

v3.1.1

IDE Name

None (command line)

Operating System

Linux

Flash frequency

40MHz

PSRAM enabled

yes

Upload speed

961200

Description

When compiling with --warnings all, the tud_mount_cb(), tud_umount_cb(), and tud_resume_cb() produce warnings concerning the uninitialized variable p.

In function 'esp_err_t arduino_usb_event_post(esp_event_base_t, int32_t, void*, size_t, TickType_t)', inlined from 'void tud_mount_cb()' at /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:103:25: /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:87:27: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized] 87 | return esp_event_post_to(arduino_usb_event_loop_handle, event_base, event_id, event_data, event_data_size, ticks_to_wait); | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.h:22, from /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:15: /home/railfan/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.3-cfea4f7c-v1/esp32s2/include/esp_event/include/esp_event.h: In function 'void tud_mount_cb()': /home/railfan/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.3-cfea4f7c-v1/esp32s2/include/esp_event/include/esp_event.h:391:11: note: by argument 4 of type 'const void*' to 'esp_err_t esp_event_post_to(esp_event_loop_handle_t, esp_event_base_t, int32_t, const void*, size_t, TickType_t)' declared here 391 | esp_err_t esp_event_post_to(esp_event_loop_handle_t event_loop, | ^~~~~~~~~~~~~~~~~ /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:102:28: note: 'p' declared here 102 | arduino_usb_event_data_t p; | ^ In function 'esp_err_t arduino_usb_event_post(esp_event_base_t, int32_t, void*, size_t, TickType_t)', inlined from 'void tud_umount_cb()' at /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:110:25: /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:87:27: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized] 87 | return esp_event_post_to(arduino_usb_event_loop_handle, event_base, event_id, event_data, event_data_size, ticks_to_wait); | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/railfan/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.3-cfea4f7c-v1/esp32s2/include/esp_event/include/esp_event.h: In function 'void tud_umount_cb()': /home/railfan/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.3-cfea4f7c-v1/esp32s2/include/esp_event/include/esp_event.h:391:11: note: by argument 4 of type 'const void*' to 'esp_err_t esp_event_post_to(esp_event_loop_handle_t, esp_event_base_t, int32_t, const void*, size_t, TickType_t)' declared here 391 | esp_err_t esp_event_post_to(esp_event_loop_handle_t event_loop, | ^~~~~~~~~~~~~~~~~ /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:109:28: note: 'p' declared here 109 | arduino_usb_event_data_t p; | ^ In function 'esp_err_t arduino_usb_event_post(esp_event_base_t, int32_t, void*, size_t, TickType_t)', inlined from 'void tud_resume_cb()' at /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:126:25: /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:87:27: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized] 87 | return esp_event_post_to(arduino_usb_event_loop_handle, event_base, event_id, event_data, event_data_size, ticks_to_wait); | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/railfan/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.3-cfea4f7c-v1/esp32s2/include/esp_event/include/esp_event.h: In function 'void tud_resume_cb()': /home/railfan/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.3-cfea4f7c-v1/esp32s2/include/esp_event/include/esp_event.h:391:11: note: by argument 4 of type 'const void*' to 'esp_err_t esp_event_post_to(esp_event_loop_handle_t, esp_event_base_t, int32_t, const void*, size_t, TickType_t)' declared here 391 | esp_err_t esp_event_post_to(esp_event_loop_handle_t event_loop, | ^~~~~~~~~~~~~~~~~ /home/railfan/.arduino15/packages/esp32/hardware/esp32/3.1.1/cores/esp32/USB.cpp:125:28: note: 'p' declared here 125 | arduino_usb_event_data_t p; | ^

tud_suspend_cb() does not generate that warning because it does initialize p before calling arduino_usb_event_post():

arduino_usb_event_data_t p; p.suspend.remote_wakeup_en = remote_wakeup_en; arduino_usb_event_post(ARDUINO_USB_EVENTS, ARDUINO_USB_SUSPEND_EVENT, &p, sizeof(arduino_usb_event_data_t), portMAX_DELAY);

The functions producing the warning skip the p.suspend.remote_wakeup_en = remote_wakeup_en; line (or something similar to initialize the variable).

Sketch

void setup()
{
	// Open serial communications and wait for port to open:
	Serial.begin(115200);
}

void loop()
{
	Serial.println("Blah!");
}

Debug Message

N/A - see description

Other Steps to Reproduce

arduino-cli compile -b esp32:esp32:esp32s2:CDCOnBoot=cdc,UploadMode=cdc,PSRAM=enabled --build-path ./build --build-property upload.maximum_size=4063232 --build-property compiler.cpp.extra_flags='-DGIT_REV=0xb7018aL -DVERSION_STRING="0.0.0"' --build-property compiler.optimization_flags=-O2 test --warnings all

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.
@petersenm petersenm added the Status: Awaiting triage Issue is waiting for triage label Mar 22, 2025
@SuGlider SuGlider self-assigned this Mar 22, 2025
@Jason2866 Jason2866 removed the Status: Awaiting triage Issue is waiting for triage label Mar 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants