Index: testsuites/sptests/spmisc01/init.c
===================================================================
--- testsuites/sptests/spmisc01/init.c	(revision fe46647ef5671095d17734792a1dcc675d54d34c)
+++ testsuites/sptests/spmisc01/init.c	(revision ebc5cfda907930be0bad6e68ed5fd3060f2980d7)
@@ -18,4 +18,5 @@
 
 #include <rtems.h>
+#include <string.h>
 
 #include <tmacros.h>
@@ -23,12 +24,210 @@
 const char rtems_test_name[] = "SPMISC 1";
 
+RTEMS_INLINE_ROUTINE int inline_func(void)
+{
+  return 7;
+}
+
+RTEMS_NO_INLINE static int noinline_func(void)
+{
+  return 14;
+}
+
+RTEMS_NO_RETURN void noreturn_func(void);
+
+RTEMS_PURE static int pure_func(void)
+{
+  return 21;
+}
+
+RTEMS_SECTION(".rtemsroset.test") static int section_variable = 28;
+
+RTEMS_USED static int used_func(void)
+{
+  return 35;
+}
+
+RTEMS_USED static int used_variable;
+
+static int unused_arg_and_variable_func(RTEMS_UNUSED int arg)
+{
+  RTEMS_UNUSED int variable;
+
+  return 42;
+}
+
+typedef struct {
+  uint8_t c;
+  uint32_t i;
+} RTEMS_PACKED packed_struct;
+
+static int alias_func(void) RTEMS_ALIAS(noinline_func);
+
+int weak_alias_func(void) RTEMS_WEAK_ALIAS(noinline_func);
+
+static char aligned_variable RTEMS_ALIGNED(64);
+
+typedef struct {
+  uint8_t c;
+  uint8_t aligned_member RTEMS_ALIGNED(64);
+} aligned_member_struct;
+
+static void unreachable(void)
+{
+  if (0) {
+    RTEMS_UNREACHABLE();
+  }
+}
+
+RTEMS_PRINTFLIKE(1, 2) static int printflike_func(const char *fmt, ...)
+{
+  return 56;
+}
+
+static int obfuscate_variable(int i)
+{
+  RTEMS_OBFUSCATE_VARIABLE(i);
+  return i;
+}
+
 RTEMS_DECLARE_GLOBAL_SYMBOL(a_global_symbol);
 
 RTEMS_DEFINE_GLOBAL_SYMBOL(a_global_symbol, 0xabc);
 
+RTEMS_STATIC_ASSERT(0 != 1, zero_neq_one);
+
+static int array[3];
+
+typedef struct {
+  uint32_t i;
+  uint32_t j[RTEMS_ZERO_LENGTH_ARRAY];
+} zero_length_array_struct;
+
+typedef struct {
+  int a;
+  int b;
+} container_of_struct;
+
+static void container_of(void)
+{
+  container_of_struct s;
+  int *b;
+
+  b = &s.b;
+  rtems_test_assert(RTEMS_CONTAINER_OF(b, container_of_struct, b) == &s);
+}
+
+static int deconst(void)
+{
+  const int i = 70;
+  int *p;
+
+  p = RTEMS_DECONST(int *, &i);
+  return *p;
+}
+
+static int devolatile(void)
+{
+  volatile int i = 77;
+  int *p;
+
+  p = RTEMS_DEVOLATILE(int *, &i);
+  return *p;
+}
+
+static int dequalify(void)
+{
+  volatile const int i = 84;
+  int *p;
+
+  p = RTEMS_DEQUALIFY(int *, &i);
+  return *p;
+}
+
+typedef struct {
+  char a;
+  int b;
+} same_member_type_struct;
+
+typedef struct {
+  char c;
+  int d;
+} same_member_type_struct_2;
+
+RTEMS_STATIC_ASSERT(
+  RTEMS_HAVE_MEMBER_SAME_TYPE(
+    same_member_type_struct,
+    b,
+    same_member_type_struct_2,
+    d
+  ),
+  same_member_type_struct_eq
+);
+
+RTEMS_STATIC_ASSERT(
+  !RTEMS_HAVE_MEMBER_SAME_TYPE(
+    same_member_type_struct,
+    b,
+    same_member_type_struct_2,
+    c
+  ),
+  same_member_type_struct_neq
+);
+
+static int concat(void)
+{
+  return 91;
+}
+
+#define CON con
+
+#define CAT cat
+
+#define STR ing
+
 static void Init(rtems_task_argument arg)
 {
   TEST_BEGIN();
+  rtems_test_assert(inline_func() == 7);
+  RTEMS_COMPILER_MEMORY_BARRIER();
+  rtems_test_assert(noinline_func() == 14);
+  rtems_test_assert(pure_func() == 21);
+  rtems_test_assert(section_variable == 28);
+  rtems_test_assert(unused_arg_and_variable_func(49) == 42);
+  rtems_test_assert(sizeof(packed_struct) == 5);
+  rtems_test_assert(alias_func() == 14);
+  rtems_test_assert(weak_alias_func() == 14);
+  rtems_test_assert(((uintptr_t) &aligned_variable) % 64 == 0);
+  rtems_test_assert(offsetof(aligned_member_struct, aligned_member) % 64 == 0);
+  unreachable();
+  rtems_test_assert(printflike_func("%i", 0) == 56);
+  rtems_test_assert(obfuscate_variable(63) == 63);
   rtems_test_assert((uintptr_t)a_global_symbol == 0xabc);
+  rtems_test_assert(RTEMS_ARRAY_SIZE(array) == 3);
+  rtems_test_assert(sizeof(zero_length_array_struct) == 4);
+  container_of();
+  rtems_test_assert(deconst() == 70);
+  rtems_test_assert(devolatile() == 77);
+  rtems_test_assert(dequalify() == 84);
+  rtems_test_assert(
+    RTEMS_HAVE_MEMBER_SAME_TYPE(
+      same_member_type_struct,
+      b,
+      same_member_type_struct_2,
+      d
+    )
+  );
+  rtems_test_assert(
+    !RTEMS_HAVE_MEMBER_SAME_TYPE(
+      same_member_type_struct,
+      b,
+      same_member_type_struct_2,
+      c
+    )
+  );
+  rtems_test_assert(RTEMS_CONCAT(con, cat)() == 91);
+  rtems_test_assert(RTEMS_XCONCAT(CON, CAT)() == 91);
+  rtems_test_assert(strcmp(RTEMS_STRING(str), "str") == 0);
+  rtems_test_assert(strcmp(RTEMS_XSTRING(STR), "ing") == 0);
   TEST_END();
   rtems_test_exit(0);
