Index: /trunk/src/bldprogs/VBoxCompilerPlugInsGcc.cpp
===================================================================
--- /trunk/src/bldprogs/VBoxCompilerPlugInsGcc.cpp	(revision 70557)
+++ /trunk/src/bldprogs/VBoxCompilerPlugInsGcc.cpp	(revision 70558)
@@ -696,5 +696,5 @@
                     State.hFmtLoc       = gimple_location(hStmt);
                     dprintf("     %s() __iprt_format%s__(iFmt=%ld, iArgs=%ld)\n",
-                            DECL_NAME(hFnDecl) ? IDENTIFIER_POINTER(DECL_NAME(hFnDecl)) : "<unamed>",
+                            hFnDecl && DECL_NAME(hFnDecl) ? IDENTIFIER_POINTER(DECL_NAME(hFnDecl)) : "<unamed>",
                             State.fMaybeNull ? "_maybe_null" : "", State.iFmt, State.iArgs);
 
Index: /trunk/src/bldprogs/test-gccplugin-2.c
===================================================================
--- /trunk/src/bldprogs/test-gccplugin-2.c	(revision 70557)
+++ /trunk/src/bldprogs/test-gccplugin-2.c	(revision 70558)
@@ -18,5 +18,5 @@
 /* Only valid stuff in this one. */
 extern void MyIprtPrintf(const char *pszFormat, ...) __attribute__((__iprt_format__(1,2)));
-extern void foo(void);
+extern void foo(const char *pszFormat, ...);
 
 extern unsigned long long g_ull;
Index: /trunk/src/bldprogs/test-gccplugin-3.c
===================================================================
--- /trunk/src/bldprogs/test-gccplugin-3.c	(revision 70558)
+++ /trunk/src/bldprogs/test-gccplugin-3.c	(revision 70558)
@@ -0,0 +1,37 @@
+/* $Id$ */
+/** @file
+ * Compiler plugin testcase \#3.
+ */
+
+/*
+ * Copyright (C) 2010-2017 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+/* Only valid stuff in this one. */
+#if defined(__i386__) || defined(_M_IX86) || defined(__X86__)
+# define RTCALL __attribute__((__cdecl__,__regparm__(0)))
+#else
+# define RTCALL
+#endif
+typedef struct HELPERS
+{
+    void (RTCALL * pfnPrintf)(struct HELPERS *pHlp, const char *pszFormat, ...)
+        __attribute__((__iprt_format__(2, 3)));
+} HELPERS;
+
+extern void foo(struct HELPERS *pHlp);
+
+
+void foo(struct HELPERS *pHlp)
+{
+    pHlp->pfnPrintf(pHlp, "%36 %#x %#x", "string", 42, 42); /// @todo missing 's', need to detect this.
+}
+
