Skip to content

Commit ef67b47

Browse files
committed
Prevent C++ static_assert from stopping parsing
Manual cherry-pick of geany/geany@fa0f92d
1 parent b27f1a9 commit ef67b47

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

c.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ typedef enum eKeywordId {
8383
KEYWORD_PROGRAM, KEYWORD_PROTECTED, KEYWORD_PUBLIC,
8484
KEYWORD_REGISTER, KEYWORD_RETURN,
8585
KEYWORD_SHADOW, KEYWORD_STATE,
86-
KEYWORD_SHORT, KEYWORD_SIGNED, KEYWORD_STATIC, KEYWORD_STRING,
86+
KEYWORD_SHORT, KEYWORD_SIGNED, KEYWORD_STATIC, KEYWORD_STATIC_ASSERT, KEYWORD_STRING,
8787
KEYWORD_STRUCT, KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED,
8888
KEYWORD_TASK, KEYWORD_TEMPLATE, KEYWORD_THIS, KEYWORD_THROW,
8989
KEYWORD_THROWS, KEYWORD_TRANSIENT, KEYWORD_TRANS, KEYWORD_TRANSITION,
@@ -437,6 +437,7 @@ static const keywordDesc KeywordTable [] = {
437437
{ "signed", KEYWORD_SIGNED, { 1, 1, 0, 0, 0 } },
438438
{ "state", KEYWORD_STATE, { 0, 0, 0, 0, 1 } },
439439
{ "static", KEYWORD_STATIC, { 1, 1, 1, 1, 1 } },
440+
{ "static_assert", KEYWORD_STATIC_ASSERT, { 0, 1, 0, 0, 0} },
440441
{ "string", KEYWORD_STRING, { 0, 0, 1, 0, 1 } },
441442
{ "struct", KEYWORD_STRUCT, { 1, 1, 1, 0, 0 } },
442443
{ "switch", KEYWORD_SWITCH, { 1, 1, 1, 1, 0 } },
@@ -1764,6 +1765,7 @@ static void processToken (tokenInfo *const token, statementInfo *const st)
17641765
case KEYWORD_RETURN: skipStatement (st); break;
17651766
case KEYWORD_SHORT: st->declaration = DECL_BASE; break;
17661767
case KEYWORD_SIGNED: st->declaration = DECL_BASE; break;
1768+
case KEYWORD_STATIC_ASSERT: skipParens(); break;
17671769
case KEYWORD_STRING: st->declaration = DECL_BASE; break;
17681770
case KEYWORD_STRUCT: st->declaration = DECL_STRUCT; break;
17691771
case KEYWORD_TASK: st->declaration = DECL_TASK; break;

0 commit comments

Comments
 (0)