diff --git a/include/etl/alignment.h b/include/etl/alignment.h index 627517be..dab55832 100644 --- a/include/etl/alignment.h +++ b/include/etl/alignment.h @@ -88,7 +88,7 @@ namespace etl //***************************************************************************** /// Check that 'p' has 'required_alignment'. //***************************************************************************** - inline bool is_aligned(void* p, size_t required_alignment) + inline bool is_aligned(const void* p, size_t required_alignment) { uintptr_t address = reinterpret_cast(p); return (address % required_alignment) == 0U; @@ -98,7 +98,7 @@ namespace etl /// Check that 'p' has 'Alignment'. //***************************************************************************** template - bool is_aligned(void* p) + bool is_aligned(const void* p) { uintptr_t address = reinterpret_cast(p); return (address % Alignment) == 0U; @@ -108,7 +108,7 @@ namespace etl /// Check that 'p' has the alignment of 'T'. //***************************************************************************** template - bool is_aligned(void* p) + bool is_aligned(const void* p) { return is_aligned::value>(p); } diff --git a/test/test_alignment.cpp b/test/test_alignment.cpp index d9a9de57..73c1f00f 100644 --- a/test/test_alignment.cpp +++ b/test/test_alignment.cpp @@ -161,6 +161,23 @@ namespace CHECK_FALSE(etl::is_aligned(p)); } + //************************************************************************* + TEST(test_is_aligned_tests_const) + { + alignas(uint32_t) const char buffer[2U * sizeof(uint32_t)] = {0, 1}; + + const char* p = buffer; + + CHECK_TRUE(etl::is_aligned(p, std::alignment_of())); + CHECK_TRUE(etl::is_aligned(p)); + CHECK_TRUE(etl::is_aligned(p)); + + ++p; + CHECK_FALSE(etl::is_aligned(p, std::alignment_of())); + CHECK_FALSE(etl::is_aligned(p)); + CHECK_FALSE(etl::is_aligned(p)); + } + //************************************************************************* TEST(test_type_with_alignment) { diff --git a/zephyr/module.yml b/zephyr/module.yml index b292d6a1..743c1299 100644 --- a/zephyr/module.yml +++ b/zephyr/module.yml @@ -1,4 +1,6 @@ name: etl build: + cmake-ext: true + kconfig-ext: true cmake: zephyr kconfig: zephyr/Kconfig