<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">