Patrick Pelissier
b44e4e09dd
Don't use builtin for clang as they are not properly supported.
2023-04-16 20:11:56 +02:00
Patrick Pelissier
5158059ec4
Make m_throw a classic "cold" function rather than a static inline function.
...
Since the function shall be rarely called, there is no point in inlining/duplicating it
in several units.
2023-04-16 19:26:15 +02:00
Patrick Pelissier
7279011f0a
Use of the builtin versions of setjmp /longjmp for GCC / CLANG
...
They are more than twice faster on extreme bench of M\_LET / M\_TRY scenario
(and still twice slower than C++).
They also use less stack usage.
2023-04-16 19:18:04 +02:00
Patrick Pelissier
83e7f2a641
Use of new M_ATTR_NO_RETURN attribute
2023-04-15 22:50:47 +02:00
Patrick Pelissier
876c394fba
Fix format
2023-03-28 23:42:25 +02:00
Patrick Pelissier
9f8b97ae46
Rename fields of m_exception_t:
...
data->context
n->num
2023-03-18 18:11:23 +01:00
Patrick Pelissier
e33894f1b3
Finish support for M_DEFER / M_LET_IF & exceptions
2023-03-18 17:57:15 +01:00
Patrick Pelissier
0798480ad5
Refactoring & implement support for RAII with M_DEFER
2023-03-18 17:39:56 +01:00
Patrick Pelissier
42111ec22a
Rename field of m_exception_t
2023-03-17 22:13:18 +01:00
Patrick Pelissier
dfed8dbc50
Fix format
2023-03-13 23:53:26 +01:00
Patrick Pelissier
bfa948dc7a
Add WIP implementation for the exception memory model:
...
add header m-try that defines the M_TRY / M_CATCH macros
that macros similarly to the C++ try / catch keywords.
Add implementation for C++, GCC, CLANG and pure C compiler.
2023-03-13 23:31:50 +01:00