#3935 closed task (fixed)

Remove use of RTEMS_INLINE_ROUTINE in the RTEMS sources

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 6.1
Component: unspecified Version: 6
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

Replace all uses of RTEMS_INLINE_ROUTINE with "static inline". This makes it a bit easier for third-party tools to parse the RTEMS sources.

Change History (5)

comment:1 Changed on 04/06/20 at 13:20:41 by Joel Sherrill

Please cite where "static inline" became part of the C and C++ standards. Eons ago static inline meaning do not include method bodies in the generated object was a GNU extension. Other compilers had their own way of specifying this.

comment:2 Changed on 04/06/20 at 13:25:42 by Sebastian Huber

This is C99. The default language version is C11 since a while.

comment:3 Changed on 04/06/20 at 13:33:01 by Joel Sherrill

Citation please. Section and paragraph.

comment:4 Changed on 04/06/20 at 13:40:56 by Sebastian Huber

I don't understand the problem, we use this for a long time:

/**
 *  The following (in conjunction with compiler arguments) are used
 *  to choose between the use of static inline functions and macro
 *  functions.   The static inline implementation allows better
 *  type checking with no cost in code size or execution speed.
 */
#ifdef __GNUC__
  #define RTEMS_INLINE_ROUTINE static __inline__
#else
  #define RTEMS_INLINE_ROUTINE static inline
#endif

Wikipedia has some background information: https://en.wikipedia.org/wiki/Inline_function

comment:5 Changed on 09/19/22 at 07:01:30 by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: assignedclosed

In a660e9dc/rtems:

Do not use RTEMS_INLINE_ROUTINE

Directly use "static inline" which is available in C99 and later. This brings
the RTEMS implementation closer to standard C.

Close #3935.

Note: See TracTickets for help on using tickets.