aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino/new.h
diff options
context:
space:
mode:
authorZach Eveland <zeveland@blacklabel-development.com>2011-09-05 12:53:45 -0400
committerZach Eveland <zeveland@blacklabel-development.com>2011-09-05 12:53:45 -0400
commit280f381265f8b8e339c92cbcb95d09cec1ec2f19 (patch)
tree157b6b2894b97287414d589f6699f22083b507f2 /cores/arduino/new.h
parent90ea0707e6e3fb251b3eaf6c8682f68dd44299e1 (diff)
parent560a510f6434efdfa0ebcfa9cd01093714e37f43 (diff)
Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
Conflicts: build/macosx/dist/tools-universal.zip build/windows/avr_tools.zip hardware/arduino/cores/arduino/HardwareSerial.cpp
Diffstat (limited to 'cores/arduino/new.h')
-rw-r--r--cores/arduino/new.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/cores/arduino/new.h b/cores/arduino/new.h
new file mode 100644
index 0000000..cd940ce
--- /dev/null
+++ b/cores/arduino/new.h
@@ -0,0 +1,22 @@
+/* Header to define new/delete operators as they aren't provided by avr-gcc by default
+ Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453
+ */
+
+#ifndef NEW_H
+#define NEW_H
+
+#include <stdlib.h>
+
+void * operator new(size_t size);
+void operator delete(void * ptr);
+
+__extension__ typedef int __guard __attribute__((mode (__DI__)));
+
+extern "C" int __cxa_guard_acquire(__guard *);
+extern "C" void __cxa_guard_release (__guard *);
+extern "C" void __cxa_guard_abort (__guard *);
+
+extern "C" void __cxa_pure_virtual(void);
+
+#endif
+