Skip to content

Commit d718b14

Browse files
Warn when Serial.printf() format is wrong (earlephilhower#1090)
Let GCC check the format string to Print::printf(). Will catch when sketches use incorrect parameters to `Serial::printf()`.
1 parent 1e2f1a1 commit d718b14

File tree

7 files changed

+12
-12
lines changed

7 files changed

+12
-12
lines changed

ArduinoCore-API

libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void ps() {
3030
Serial.printf("# Tasks: %d\n", tasks);
3131
Serial.println("ID, NAME, STATE, PRIO, CYCLES");
3232
for (int i=0; i < tasks; i++) {
33-
Serial.printf("%d: %-16s %-10s %d %lu\n", i, pxTaskStatusArray[i].pcTaskName, eTaskStateName[pxTaskStatusArray[i].eCurrentState], pxTaskStatusArray[i].uxCurrentPriority, pxTaskStatusArray[i].ulRunTimeCounter);
33+
Serial.printf("%d: %-16s %-10s %d %lu\n", i, pxTaskStatusArray[i].pcTaskName, eTaskStateName[pxTaskStatusArray[i].eCurrentState], (int)pxTaskStatusArray[i].uxCurrentPriority, pxTaskStatusArray[i].ulRunTimeCounter);
3434
}
3535
delete[] pxTaskStatusArray;
3636
}

libraries/SingleFileDrive/examples/DataLoggerUSB/DataLoggerUSB.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ void setup() {
6969
cnt++;
7070
}
7171

72-
Serial.printf("Starting acquisition at %d\n", cnt);
72+
Serial.printf("Starting acquisition at %lu\n", cnt);
7373
}
7474

7575
void loop() {

libraries/WiFi/examples/BearSSL_Sessions/BearSSL_Sessions.ino

+4-4
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ void loop() {
113113
client.setTrustAnchors(&cert);
114114
fetchURL(&client, host, port, path);
115115
finish = millis();
116-
Serial.printf("Total time: %dms\n", finish - start);
116+
Serial.printf("Total time: %lums\n", finish - start);
117117

118118
BearSSL::Session session;
119119
client.setSession(&session);
@@ -122,21 +122,21 @@ void loop() {
122122
client.setTrustAnchors(&cert);
123123
fetchURL(&client, host, port, path);
124124
finish = millis();
125-
Serial.printf("Total time: %dms\n", finish - start);
125+
Serial.printf("Total time: %lums\n", finish - start);
126126

127127
Serial.printf("Connecting with the just initialized session...");
128128
start = millis();
129129
client.setTrustAnchors(&cert);
130130
fetchURL(&client, host, port, path);
131131
finish = millis();
132-
Serial.printf("Total time: %dms\n", finish - start);
132+
Serial.printf("Total time: %lums\n", finish - start);
133133

134134
Serial.printf("Connecting again with the initialized session...");
135135
start = millis();
136136
client.setTrustAnchors(&cert);
137137
fetchURL(&client, host, port, path);
138138
finish = millis();
139-
Serial.printf("Total time: %dms\n", finish - start);
139+
Serial.printf("Total time: %lums\n", finish - start);
140140

141141
delay(10000); // Avoid DDOSing github
142142
}

libraries/WiFi/examples/BearSSL_Validation/BearSSL_Validation.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void fetchURL(BearSSL::WiFiClientSecure *client, const char *host, const uint16_
7676
} while (millis() < to);
7777
}
7878
client->stop();
79-
Serial.printf("BSSL stack used: %d\n-------\n\n", stack_thunk_get_max_usage());
79+
Serial.printf("BSSL stack used: %lu\n-------\n\n", stack_thunk_get_max_usage());
8080
}
8181

8282
void fetchNoConfig() {

libraries/WiFi/examples/ScanNetworks/ScanNetworks.ino

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const char *encToString(uint8_t enc) {
2424

2525
void loop() {
2626
delay(5000);
27-
Serial.printf("Beginning scan at %d\n", millis());
27+
Serial.printf("Beginning scan at %lu\n", millis());
2828
auto cnt = WiFi.scanNetworks();
2929
if (!cnt) {
3030
Serial.printf("No networks found\n");
@@ -34,7 +34,7 @@ void loop() {
3434
for (auto i = 0; i < cnt; i++) {
3535
uint8_t bssid[6];
3636
WiFi.BSSID(i, bssid);
37-
Serial.printf("%32s %5s %17s %2d %4d\n", WiFi.SSID(i), encToString(WiFi.encryptionType(i)), macToString(bssid), WiFi.channel(i), WiFi.RSSI(i));
37+
Serial.printf("%32s %5s %17s %2d %4ld\n", WiFi.SSID(i), encToString(WiFi.encryptionType(i)), macToString(bssid), WiFi.channel(i), WiFi.RSSI(i));
3838
}
3939
}
4040
Serial.printf("\n--- Sleeping ---\n\n\n");

libraries/rp2040/examples/GetCycleCount/GetCycleCount.ino

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ void setup() {
66
uint32_t a = rp2040.getCycleCount();
77
delay(1000);
88
uint32_t b = rp2040.getCycleCount();
9-
Serial.printf("There are %d cycles in one second.\n\n\n", b - a);
9+
Serial.printf("There are %lu cycles in one second.\n\n\n", b - a);
1010

1111
delay(3000);
1212

@@ -16,6 +16,6 @@ void setup() {
1616
}
1717

1818
void loop() {
19-
Serial.printf("%15u - %15llu\n", rp2040.getCycleCount(), rp2040.getCycleCount64());
19+
Serial.printf("%15lu - %15llu\n", rp2040.getCycleCount(), rp2040.getCycleCount64());
2020
delay(1500);
2121
}

0 commit comments

Comments
 (0)