summarylogtreecommitdiffstats
path: root/0023-Fix-__VA_ARGS__-expansion-in-macro-if-variable-argum.patch
blob: 0e1cc90fb1c5181df2512e02c6af7533946b989a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From 3274f5bae444c2bc62011598a85edeecaad979b9 Mon Sep 17 00:00:00 2001
From: Sergei Litvin <litvindev@gmail.com>
Date: Thu, 22 Jun 2017 20:38:52 +0300
Subject: [PATCH 23/33] Fix ##__VA_ARGS__ expansion in macro if variable
 arguments are omitted

---
 src/yylex.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/yylex.c b/src/yylex.c
index 0af4dcc..5cb5ff5 100644
--- a/src/yylex.c
+++ b/src/yylex.c
@@ -1327,6 +1327,10 @@ static void collate(char **albcc, char **abcc, char *buf, int *absize,
 		GetLexToken(lex, ncc);
 		PassLex(ncc, lex, line, val, hash, pos, len, 0);
 		cc = actArgs[val].a; ccfin = actArgs[val].fin;
+		if (! (cc < ccfin) && NextLexToken(lbcc) == ',') {
+			bcc = lbcc;
+			lbcc = NULL;
+		}
 	} else {
 		cc = ncc; 
 		GetLexToken(lex, ncc);
-- 
2.18.0