Skip to content

Commit

Permalink
[ext] Add more operator new/delete overloads missing on AVRs
Browse files Browse the repository at this point in the history
  • Loading branch information
salkinium committed Dec 1, 2024
1 parent 9c04575 commit 9e480a8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -262,11 +262,11 @@ jobs:
if: always()
run: |
(cd test && make compile-arduino-uno)
(cd test && make compile-arduino-nano_A compile-arduino-nano_C compile-arduino-nano_D compile-arduino-nano_E compile-arduino-nano_G)
(cd test && make compile-arduino-nano_A compile-arduino-nano_B compile-arduino-nano_C compile-arduino-nano_D compile-arduino-nano_E compile-arduino-nano_F compile-arduino-nano_G)
- name: Compile AVR Unittests ATmega
if: always()
run: |
(cd test && make compile-mega-2560-pro_A compile-mega-2560-pro_B)
(cd test && make compile-mega-2560-pro_A compile-mega-2560-pro_B compile-mega-2560-pro_C)
- name: Quick compile HAL for AVR Devices
if: always()
run: |
Expand Down
10 changes: 10 additions & 0 deletions ext/gcc/new_delete.cpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ void* operator new (std::size_t size, const std::nothrow_t&) noexcept { return
modm_weak
void* operator new[](std::size_t size, const std::nothrow_t&) noexcept { return malloc(size); }

modm_weak
void* operator new (std::size_t size, std::align_val_t) { return new_assert<false>(size); }
modm_weak
void* operator new[](std::size_t size, std::align_val_t) { return new_assert<false>(size); }

%% if with_memory_traits
modm_weak
void* operator new (std::size_t size, modm::MemoryTraits traits) { return new_assert<true>(size, traits); }
Expand Down Expand Up @@ -126,3 +131,8 @@ modm_weak
void operator delete (void* ptr, const std::nothrow_t&) noexcept { operator_delete(ptr); }
modm_weak
void operator delete[](void* ptr, const std::nothrow_t&) noexcept { operator_delete(ptr); }

modm_weak
void operator delete (void* ptr, std::size_t, std::align_val_t) noexcept { operator_delete(ptr); }
modm_weak
void operator delete[](void* ptr, std::size_t, std::align_val_t) noexcept { operator_delete(ptr); }

0 comments on commit 9e480a8

Please sign in to comment.