add C11 _Static_assert support

This commit is contained in:
matthias 2019-04-28 01:07:01 +02:00
parent 85483f321d
commit 5a0101856b
2 changed files with 14 additions and 0 deletions

View File

@ -7445,6 +7445,19 @@ static int decl0(int l, int is_for_loop_init, Sym *func_sym)
AttributeDef ad, adbase;
while (1) {
if (tok == TOK_STATIC_ASSERT) {
int c;
next();
skip('(');
c = expr_const();
skip(',');
if (c == 0)
tcc_error("%s", get_tok_str(tok, &tokc));
next();
skip(')');
continue;
}
if (!parse_btype(&btype, &adbase)) {
if (is_for_loop_init)
return 0;

View File

@ -38,6 +38,7 @@
DEF(TOK_EXTENSION, "__extension__") /* gcc keyword */
DEF(TOK_GENERIC, "_Generic")
DEF(TOK_STATIC_ASSERT, "_Static_assert")
DEF(TOK_FLOAT, "float")
DEF(TOK_DOUBLE, "double")