µOS++ IIIe Reference
7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
cxx.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of the µOS++ distribution.
3
* (https://github.com/micro-os-plus)
4
* Copyright (c) 2015 Liviu Ionescu.
5
*
6
* Permission is hereby granted, free of charge, to any person
7
* obtaining a copy of this software and associated documentation
8
* files (the "Software"), to deal in the Software without
9
* restriction, including without limitation the rights to use,
10
* copy, modify, merge, publish, distribute, sublicense, and/or
11
* sell copies of the Software, and to permit persons to whom
12
* the Software is furnished to do so, subject to the following
13
* conditions:
14
*
15
* The above copyright notice and this permission notice shall be
16
* included in all copies or substantial portions of the Software.
17
*
18
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25
* OTHER DEALINGS IN THE SOFTWARE.
26
*/
27
28
#if defined(__clang__)
29
#pragma clang diagnostic ignored "-Wempty-translation-unit"
30
#endif
31
32
// ----------------------------------------------------------------------------
33
34
#if defined(__ARM_EABI__)
35
36
// ----------------------------------------------------------------------------
37
38
#include <cstdlib>
39
#include <sys/types.h>
40
#include <
cmsis-plus/diag/trace.h
>
41
42
// ----------------------------------------------------------------------------
43
44
// These functions are redefined locally, to avoid references to some
45
// heavy implementations in the standard C++ library.
46
47
namespace
__gnu_cxx
48
{
49
[[noreturn]]
void
50
__verbose_terminate_handler
();
51
52
void
53
__verbose_terminate_handler
()
54
{
55
trace_puts
(__func__);
56
abort
();
57
/* NOTREACHED */
58
}
59
}
60
61
// ----------------------------------------------------------------------------
62
63
extern
"C"
64
{
65
[[noreturn]]
void
66
__cxa_pure_virtual
();
67
68
void
69
__cxa_pure_virtual
()
70
{
71
// Attempt to use a virtual function before object has been constructed
72
trace_puts
(__func__);
73
abort
();
74
/* NOTREACHED */
75
}
76
}
77
78
// ----------------------------------------------------------------------------
79
80
void
*
__dso_handle
__attribute__ ((weak));
81
82
// ----------------------------------------------------------------------------
83
84
#endif
/* defined(__ARM_EABI__) */
__dso_handle
void * __dso_handle
Definition
cxx.cpp:80
__cxa_pure_virtual
void __cxa_pure_virtual()
Definition
cxx.cpp:69
abort
void abort(void)
Definition
exit.c:56
__gnu_cxx
Definition
cxx.cpp:48
__gnu_cxx::__verbose_terminate_handler
void __verbose_terminate_handler()
Definition
cxx.cpp:53
trace.h
trace_puts
int trace_puts(const char *s)
src
libcpp
cxx.cpp
Generated by
1.9.7