<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128536>128536</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AVR] clang: Arduino program breaks when Serial functions are used
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dakkshesh07
</td>
</tr>
</table>
<pre>
**LLVM Version:** 20.1.0-rc2
**Description:**
I'm trying to compile Arduino AVR programs using Clang, but I’ve encountered an issue with the Blink example sketch. When `Serial` functions are used, the LED remains stuck in the ON position, even with LTO disabled globally. Removing the serial-related code allows the LED to blink normally.
**Test Code:**
Failing Example (LED stuck ON):
```cpp
#include <Arduino.h>
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
Serial.println();
Serial.println("Hello world. I was built with clang!");
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
```
Working Example (without Serial functions):
```cpp
#include <Arduino.h>
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
```
**Additional Info:**
- The same code works correctly when compiled with AVR GCC.
- The Arduino AVR core fork used during compilation: [ClangBuiltArduino/core_arduino_avr](https://github.com/ClangBuiltArduino/core_arduino_avr/tree/9602bbb2523eedbe1e8c7459659e3eb00781b000/cores/arduino)
Please let me know if any additional information would be helpful for diagnosing this issue — I can provide assembly files, compiler flags, or any other relevant details as needed.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcVlGPmzgQ_jXOy2gRmEDgIQ8ku2kjpd2ql-4-VgYP4IuxkW2Sy78_Gdhs1LtWd08nHUKKIDPfzDcz_gZmrWgU4pokG5I8LtjgWm3WnJ1OtkXbhqtFqfl1TWhBaHE4vHyCFzRWaEXiYnoJNAyiIHwwFSVh4e_x9SPayoje3ZuSsNgTuurAmatQDTgNle56IREKwwehNBQvX6E3ujGsszBYb7WVTDWEbqEcHOzJEyVZSPL8jICq0oNyaJADUyCsHRAuwrXgWoSNFOoE-AfreolgT-iqNoDXFhWQNPwNjWCSpCHUg6p8mhaYQRgsch_MIxyeHsFgx4SyYN1QnUCo8Y_nz9BrK0ZydAt4RjXFPRyfgQvLSokcGqlLJuU1gK_Y6fPIuEWwY-QHg5I55FBpjsCk1Bd7C-o0lGP2SptuhLgv7RGtg63meF9YEhY7JqQP8jRTJjTzYFPmz58Jzb1DWJA0nO6q70fQWKhKDhyBxNu5EUFL4qcJ9qwFB4tu6AnNCM2BrDYkLAB6oT75LMYw3zff9ofj_rOvx_O345dvxzHeBvw1mk8VD0pshCI0y9MwvDN5v-6NeyOUk2oK_FfTn9rSjyilhos2kgewhwuzUA5CuqlN1TRSEaF0wvVMV493fKXWP9LlohGOyVcj3N9w_rj_8PGGBcBRsiuhWRT-hOVb8r9GPTy_3rz_De5M5q3RE7FXbU4_zIevhh7cXML3o_Dfzsr_vxXTsS04HzWESdirWt8f5wc4eqlgHU4CcdHmZKHSxmDl5BUuXsZm8eTTUHvp_LDdBjfve02ttEGotTmNAgd8MH4SJgA2izSQZDOK7caflNmb0J33_c6mx-_sbEjySGjWOtfbMeUdobtGuHYog0p3hO7-EQjdOYNI6C5PQ1qWJU1ojMhLjDCrVsskT5McYyzDcJVF5VjjEcQSumNvsPlUzi8SmUWQ6KBDOCl9AVEDU1dg7yUWqvZq6p_gogfJoURoUfb1IH1pgAvWKG0nnRZ23idvC2cJe6iY8tvpLLxkW4tdKa9QC-mT2r61w0AtWTO-0WZMQrsWDRiUeGbKAUfHhLTALChEjjxY8HXM8zhnC1xHq2W4jJIsSxftOk-rlGVJnNdxvEpzhssoSSiPKUviHDFfiDUNaRJSuozSJKLLoMoiRpOK1SXWaVlTsgz9BpOBlOcu0KZZjLTWEc2SOF1IVqK04_qndJZF6r8EzNo7PJRDY8kylMI6-w7hhJPjN0Px8pUkj7OexsVt5OYVDqVBdrLTtP6oMbd1uxiMXP9inHzY-eehN_p3rByhu5GGH4aZyXlN_wwAAP__hEinlQ">