aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parse.c
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-01-26 16:37:11 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-09-26 18:11:32 +0200
commitd765800ade9ccb195c1b45033573dcaeec4e3f46 (patch)
tree9902db794d74fd670422f1259272f80412988d93 /parse.c
parentddebbc1dff5701d2c97562de0f91e51cd5544382 (diff)
downloadsparse-dev-d765800ade9ccb195c1b45033573dcaeec4e3f46.tar.gz
string: use string_expression() in parse_static_assert()
The error handling during the parsing of _Static_assert()'s message string is relatively complex. Simplify this by using the new helper string_expression(). Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/parse.c b/parse.c
index 79543432..401f91a1 100644
--- a/parse.c
+++ b/parse.c
@@ -2132,14 +2132,9 @@ static struct token *parse_static_assert(struct token *token, struct symbol_list
if (!cond)
sparse_error(token->pos, "Expected constant expression");
token = expect(token, ',', "after conditional expression in _Static_assert");
- token = parse_expression(token, &message);
- if (!message || message->type != EXPR_STRING) {
- struct position pos;
-
- pos = message ? message->pos : token->pos;
- sparse_error(pos, "bad or missing string literal");
+ token = string_expression(token, &message, "_Static_assert()");
+ if (!message)
cond = NULL;
- }
token = expect(token, ')', "after diagnostic message in _Static_assert");
token = expect(token, ';', "after _Static_assert()");