Skip to content

Commit 3d6ab69

Browse files
committed
Merge branch 'master' of ../Arduino-Helpers
2 parents a28a058 + 48c87ad commit 3d6ab69

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/AH/PrintStream/PrintStream.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// LCOV_EXCL_START
66

77
#if not defined(ARDUINO_ARCH_ESP32) && not defined(ARDUINO_ARCH_SAM) && \
8-
not defined(ARDUINO_API_VERSION)
8+
not defined(ARDUINO_API_VERSION) && not defined(ArduinoFake)
99
#define FLUSH
1010
#endif
1111

src/AH/STL/Fallback/new

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#include "bits/c++config.h"
4040
// #include <exception>
4141

42+
#include <new.h> // Arduino's version of the <new> header
43+
4244
#pragma GCC visibility push(default)
4345

4446
extern "C++" {
@@ -86,6 +88,7 @@ namespace std
8688
enum class align_val_t: size_t {};
8789
#endif
8890

91+
#if !defined(NEW_H) || defined(__AVR_ATmega4809__) // already defined in Arduino's version of <new>
8992
struct nothrow_t
9093
{
9194
#if __cplusplus >= 201103L
@@ -107,9 +110,11 @@ namespace std
107110
/// Return the current new handler.
108111
new_handler get_new_handler() noexcept;
109112
#endif
113+
#endif // NEW_H
110114
} // namespace std
111115

112116
//@{
117+
#if !defined(NEW_H) || defined(__AVR_ATmega4809__) // already defined in Arduino's version of <new>
113118
/** These are replaceable signatures:
114119
* - normal single new and delete (no arguments, throw @c bad_alloc on error)
115120
* - normal array new and delete (same)
@@ -120,6 +125,7 @@ namespace std
120125
* Placement new and delete signatures (take a memory address argument,
121126
* does nothing) may not be replaced by a user's program.
122127
*/
128+
#ifndef __AVR_ATmega4809__
123129
void* operator new(std::size_t) _GLIBCXX_THROW (std::bad_alloc)
124130
__attribute__((__externally_visible__));
125131
void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
@@ -128,6 +134,7 @@ void operator delete(void*) _GLIBCXX_USE_NOEXCEPT
128134
__attribute__((__externally_visible__));
129135
void operator delete[](void*) _GLIBCXX_USE_NOEXCEPT
130136
__attribute__((__externally_visible__));
137+
#endif
131138
#if __cpp_sized_deallocation
132139
void operator delete(void*, std::size_t) _GLIBCXX_USE_NOEXCEPT
133140
__attribute__((__externally_visible__));
@@ -176,6 +183,7 @@ inline void* operator new[](std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
176183
// Default placement versions of operator delete.
177184
inline void operator delete (void*, void*) _GLIBCXX_USE_NOEXCEPT { }
178185
inline void operator delete[](void*, void*) _GLIBCXX_USE_NOEXCEPT { }
186+
#endif // NEW_H
179187
//@}
180188
} // extern "C++"
181189

0 commit comments

Comments
 (0)