Index: /trunk/src/bldprogs/VBoxCPP.cpp
===================================================================
--- /trunk/src/bldprogs/VBoxCPP.cpp	(revision 41302)
+++ /trunk/src/bldprogs/VBoxCPP.cpp	(revision 41303)
@@ -523,5 +523,5 @@
 *******************************************************************************/
 static PVBCPPMACRO  vbcppMacroLookup(PVBCPP pThis, const char *pszDefine, size_t cchDefine);
-static RTEXITCODE   vbcppMacroExpandIt(PVBCPP pThis, PVBCPPMACROEXP pExp, size_t offMacro, PVBCPPMACRO pMacro, size_t *poffParameters);
+static RTEXITCODE   vbcppMacroExpandIt(PVBCPP pThis, PVBCPPMACROEXP pExp, size_t offMacro, PVBCPPMACRO pMacro, size_t offParameters);
 static RTEXITCODE   vbcppMacroExpandReScan(PVBCPP pThis, PVBCPPMACROEXP pExp, VBCPPMACRORESCANMODE enmMode, size_t *pcReplacements);
 static void         vbcppMacroExpandCleanup(PVBCPPMACROEXP pExp);
@@ -1578,8 +1578,5 @@
         rcExit = vbcppStrBufAppendN(&ExpCtx.StrBuf, pchDefine, cchDefine);
         if (rcExit == RTEXITCODE_SUCCESS)
-        {
-            size_t offIgnore = cchDefine;
-            rcExit = vbcppMacroExpandIt(pThis, &ExpCtx, 0 /* offset */, pMacro, &offIgnore);
-        }
+            rcExit = vbcppMacroExpandIt(pThis, &ExpCtx, 0 /* offset */, pMacro, cchDefine);
         if (rcExit == RTEXITCODE_SUCCESS)
             rcExit = vbcppMacroExpandReScan(pThis, &ExpCtx, kMacroReScanMode_Normal, NULL);
@@ -2195,16 +2192,12 @@
  *                              invocation.
  * @param   pMacro              The macro.
- * @param   poffParameters      The start of the parameter list if applicable.
- *                              Ignored if not function macro.
- *
- *                              If the parameter list starts at the current stream position shall
- *                              be at the end of the expansion buffer.
- *
- *                              Will be advanced to the character following the
- *                              closing parenthesis on success.  Undefined on
- *                              failure.
+ * @param   offParameters       The start of the parameter list if applicable.
+ *                              Ignored if not function macro.  If the
+ *                              parameter list starts at the current stream
+ *                              position shall be at the end of the expansion
+ *                              buffer.
  */
 static RTEXITCODE vbcppMacroExpandIt(PVBCPP pThis, PVBCPPMACROEXP pExp, size_t offMacro, PVBCPPMACRO pMacro,
-                                     size_t *poffParameters)
+                                     size_t offParameters)
 {
     RTEXITCODE rcExit;
@@ -2217,5 +2210,5 @@
     if (pMacro->fFunction)
     {
-        rcExit = vbcppMacroExpandGatherParameters(pThis, pExp, poffParameters, pMacro->cArgs + pMacro->fVarArg);
+        rcExit = vbcppMacroExpandGatherParameters(pThis, pExp, &offParameters, pMacro->cArgs + pMacro->fVarArg);
         if (rcExit == RTEXITCODE_SUCCESS)
         {
@@ -2233,5 +2226,5 @@
             rcExit = vbcppMacroExpandValueWithArguments(pThis, pExp, pMacro, &ValueBuf);
             if (rcExit == RTEXITCODE_SUCCESS)
-                rcExit = vbcppMacroExpandReplace(pThis, pExp, offMacro, *poffParameters - offMacro,
+                rcExit = vbcppMacroExpandReplace(pThis, pExp, offMacro, offParameters - offMacro,
                                                  ValueBuf.pszBuf, ValueBuf.cchBuf);
             vbcppStrBufDelete(&ValueBuf);
@@ -2446,5 +2439,8 @@
                 && (   !pMacro->fFunction
                     || vbcppMacroExpandLookForLeftParenthesis(pThis, pExp, &off)) )
-                rcExit = vbcppMacroExpandIt(pThis, pExp, offDefine, pMacro, &off);
+            {
+                rcExit = vbcppMacroExpandIt(pThis, pExp, offDefine, pMacro, off);
+                off = offDefine;
+            }
             else
             {
