Preprocessor: fix handling of first empty argument.

First empty argument used to be dropped: e.g. MACRO(,test) would be
expanded with one parameter only, with value 'test'.

Change-Id: I693fbb7faf1360f62266fa04c4b39c2de0d159a7
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
This commit is contained in:
Francois Ferrand
2012-03-16 14:10:46 +01:00
committed by Erik Verbruggen
parent ffd58c577a
commit 3e9105e401
2 changed files with 19 additions and 1 deletions

View File

@@ -369,7 +369,7 @@ const char *MacroExpander::expand(const char *__first, const char *__last,
MacroExpander expand_actual (env, frame);
const char *arg_end = skip_argument_variadics (actuals, macro, arg_it, __last);
if (arg_it != arg_end)
if (arg_it != arg_end || (arg_end != __last && *arg_end == ','))
{
actuals_ref.append(MacroArgumentReference(start_offset + (arg_it-start), arg_end - arg_it));
const QByteArray actual (arg_it, arg_end - arg_it);