[geany/geany] fa0f92: Prevent C++ static_assert from stopping parsing

elextr git-noreply at xxxxx
Sun Jun 23 07:31:20 UTC 2013


Branch:      refs/heads/master
Author:      elextr <elextr at gmail.com>
Committer:   elextr <elextr at gmail.com>
Date:        Sun, 23 Jun 2013 07:31:20 UTC
Commit:      fa0f92def2bf584ed1f6ae836e509f38324f8b6c
             https://github.com/geany/geany/commit/fa0f92def2bf584ed1f6ae836e509f38324f8b6c

Log Message:
-----------
Prevent C++ static_assert from stopping parsing

For some conditions static_assert was stopping further parsing.
For example:
static_assert(a<1,"too small");
would stop all further parsing.  Now static_assert is recognised
and content of the parens is ignored.


Modified Paths:
--------------
    tagmanager/ctags/c.c

Modified: tagmanager/ctags/c.c
5 files changed, 4 insertions(+), 1 deletions(-)
===================================================================
@@ -82,7 +82,8 @@
 	KEYWORD_PROGRAM, KEYWORD_PROTECTED, KEYWORD_PUBLIC,
 	KEYWORD_REF, KEYWORD_REGISTER, KEYWORD_RETURN,
 	KEYWORD_SHADOW, KEYWORD_STATE,
-	KEYWORD_SET, KEYWORD_SHORT, KEYWORD_SIGNAL, KEYWORD_SIGNED, KEYWORD_SIZE_T, KEYWORD_STATIC, KEYWORD_STRING,
+	KEYWORD_SET, KEYWORD_SHORT, KEYWORD_SIGNAL, KEYWORD_SIGNED, KEYWORD_SIZE_T, KEYWORD_STATIC,
+	KEYWORD_STATIC_ASSERT, KEYWORD_STRING,
 	KEYWORD_STRUCT, KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED,
 	KEYWORD_TASK, KEYWORD_TEMPLATE, KEYWORD_THIS, KEYWORD_THROW,
 	KEYWORD_THROWS, KEYWORD_TRANSIENT, KEYWORD_TRANS, KEYWORD_TRANSITION,
@@ -476,6 +477,7 @@
 	{ "size_t",         KEYWORD_SIZE_T,         { 1, 1, 0, 0, 0, 1, 1 } },
 	{ "state",          KEYWORD_STATE,          { 0, 0, 0, 0, 1, 0, 0 } },
 	{ "static",         KEYWORD_STATIC,         { 1, 1, 1, 1, 1, 1, 1 } },
+	{ "static_assert",  KEYWORD_STATIC_ASSERT,  { 0, 1, 0, 0, 0, 0, 0 } },
 	{ "string",         KEYWORD_STRING,         { 0, 0, 1, 0, 1, 1, 0 } },
 	{ "struct",         KEYWORD_STRUCT,         { 1, 1, 1, 0, 0, 1, 1 } },
 	{ "switch",         KEYWORD_SWITCH,         { 1, 1, 1, 1, 0, 1, 1 } },
@@ -2014,6 +2016,7 @@ static void processToken (tokenInfo *const token, statementInfo *const st)
 		case KEYWORD_SHORT:		st->declaration = DECL_BASE;		break;
 		case KEYWORD_SIGNED:	st->declaration = DECL_BASE;		break;
 		case KEYWORD_STRUCT:	checkIsClassEnum (st, DECL_STRUCT);	break;
+		case KEYWORD_STATIC_ASSERT: skipParens ();                  break;
 		case KEYWORD_THROWS:	discardTypeList (token);			break;
 		case KEYWORD_TYPEDEF:	st->scope	= SCOPE_TYPEDEF;		break;
 		case KEYWORD_UNION:		st->declaration = DECL_UNION;		break;



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list