score: Add RTEMS_RETURN_ADDRESS()

This commit is contained in:
Sebastian Huber
2019-08-28 15:22:27 +02:00
parent 956a2ef78d
commit 807ea677b2
2 changed files with 18 additions and 2 deletions
+12 -1
View File
@@ -10,7 +10,7 @@
* COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* Copyright (c) 2010, 2018 embedded brains GmbH.
* Copyright (C) 2010, 2019 embedded brains GmbH
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
@@ -371,6 +371,17 @@
#define RTEMS_PREDICT_FALSE( _exp ) ( _exp )
#endif
/**
* @brief Returns the return address of the current function.
*
* @return The return address.
*/
#if defined(__GNUC__)
#define RTEMS_RETURN_ADDRESS() __builtin_return_address( 0 )
#else
#define RTEMS_RETURN_ADDRESS() NULL
#endif
#if __cplusplus >= 201103L
#define RTEMS_STATIC_ASSERT(cond, msg) \
static_assert(cond, # msg)
+6 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018 embedded brains GmbH. All rights reserved.
* Copyright (C) 2018, 2019 embedded brains GmbH
*
* embedded brains GmbH
* Dornierstr. 4
@@ -192,6 +192,8 @@ static int concat(void)
static void Init(rtems_task_argument arg)
{
void *p;
TEST_BEGIN();
rtems_test_assert(inline_func() == 7);
RTEMS_COMPILER_MEMORY_BARRIER();
@@ -260,6 +262,9 @@ static void Init(rtems_task_argument arg)
rtems_test_assert(true);
}
p = RTEMS_RETURN_ADDRESS();
(void) p;
TEST_END();
rtems_test_exit(0);
}