Workaround 'address of auto-variable returned' cppcheck error
authorIvan Maidanski <ivmai@mail.ru>
Tue, 30 Jan 2018 08:11:45 +0000 (11:11 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 30 Jan 2018 08:11:45 +0000 (11:11 +0300)
* mark_rts.c [CPPCHECK] (GC_approx_sp): Use __builtin_frame_address.
* mark_rts.c (GC_approx_sp): Replace GC_GNUC_PREREQ(4,0) with
__GNUC__>=4; add TODO item.

mark_rts.c

index 5aca8be..d585f38 100644 (file)
@@ -391,7 +391,8 @@ STATIC void GC_remove_tmp_roots(void)
 GC_INNER ptr_t GC_approx_sp(void)
 {
     volatile word sp;
-#   if GC_GNUC_PREREQ(4, 0)
+#   if defined(CPPCHECK) || (__GNUC__ >= 4) /* GC_GNUC_PREREQ(4, 0) */
+        /* TODO: Use GC_GNUC_PREREQ after fixing a bug in cppcheck. */
         sp = (word)__builtin_frame_address(0);
 #   else
         sp = (word)&sp;