[core] Use constexpr for PROGMEM arrays

Change progmem_array codegen from `static const` to `static constexpr`.
This ensures the compiler evaluates the array at compile time with no
runtime initialization, and is the correct qualifier for constant data
known at compile time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
J. Nick Koston
2026-02-19 16:33:38 -06:00
co-authored by Claude Opus 4.6
parent bd50b80882
commit 41346716cc
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -424,7 +424,7 @@ class ProgmemAssignmentExpression(AssignmentExpression):
super().__init__(type_, "", name, rhs)
def __str__(self):
return f"static const {self.type} {self.name}[] PROGMEM = {self.rhs}"
return f"static constexpr {self.type} {self.name}[] PROGMEM = {self.rhs}"
class StaticConstAssignmentExpression(AssignmentExpression):
+1 -1
View File
@@ -325,7 +325,7 @@ class TestStatements:
),
(
cg.ProgmemAssignmentExpression(ct.uint16, "foo", "bar"),
'static const uint16_t foo[] PROGMEM = "bar"',
'static constexpr uint16_t foo[] PROGMEM = "bar"',
),
),
)