diff options
-rw-r--r-- | giscanner/scannerlexer.l | 2 | ||||
-rw-r--r-- | giscanner/scannerparser.y | 8 | ||||
-rw-r--r-- | giscanner/sourcescanner.h | 3 | ||||
-rw-r--r-- | giscanner/sourcescanner.py | 1 |
4 files changed, 11 insertions, 3 deletions
diff --git a/giscanner/scannerlexer.l b/giscanner/scannerlexer.l index 218024e9..7ffaad7f 100644 --- a/giscanner/scannerlexer.l +++ b/giscanner/scannerlexer.l @@ -181,6 +181,8 @@ stringtext ([^\\\"])|(\\.) "__signed__" { return SIGNED; } "__restrict" { return RESTRICT; } "__restrict__" { return RESTRICT; } +"thread_local" { return THREAD_LOCAL; } +"_Thread_local" { return THREAD_LOCAL; } "__typeof" { if (!parse_ignored_macro()) REJECT; } "__volatile" { return VOLATILE; } "__volatile__" { return VOLATILE; } diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y index 4a40d6a4..d9490b00 100644 --- a/giscanner/scannerparser.y +++ b/giscanner/scannerparser.y @@ -234,8 +234,8 @@ toggle_conditional (GISourceScanner *scanner) %token AUTO BOOL BREAK CASE CHAR CONST CONTINUE DEFAULT DO DOUBLE ELSE ENUM %token EXTENSION EXTERN FLOAT FOR GOTO IF INLINE INT LONG REGISTER RESTRICT -%token RETURN SHORT SIGNED SIZEOF STATIC STRUCT SWITCH TYPEDEF UNION UNSIGNED -%token VOID VOLATILE WHILE +%token RETURN SHORT SIGNED SIZEOF STATIC STRUCT SWITCH THREAD_LOCAL TYPEDEF +%token UNION UNSIGNED VOID VOLATILE WHILE %token FUNCTION_MACRO OBJECT_MACRO %token IFDEF_GI_SCANNER IFNDEF_GI_SCANNER @@ -849,6 +849,10 @@ storage_class_specifier { $$ = STORAGE_CLASS_REGISTER; } + | THREAD_LOCAL + { + $$ = STORAGE_CLASS_THREAD_LOCAL; + } ; type_specifier diff --git a/giscanner/sourcescanner.h b/giscanner/sourcescanner.h index 9e371312..2167df70 100644 --- a/giscanner/sourcescanner.h +++ b/giscanner/sourcescanner.h @@ -69,7 +69,8 @@ typedef enum STORAGE_CLASS_EXTERN = 1 << 2, STORAGE_CLASS_STATIC = 1 << 3, STORAGE_CLASS_AUTO = 1 << 4, - STORAGE_CLASS_REGISTER = 1 << 5 + STORAGE_CLASS_REGISTER = 1 << 5, + STORAGE_CLASS_THREAD_LOCAL = 1 << 6 } StorageClassSpecifier; typedef enum diff --git a/giscanner/sourcescanner.py b/giscanner/sourcescanner.py index 30fa75f0..0577ced8 100644 --- a/giscanner/sourcescanner.py +++ b/giscanner/sourcescanner.py @@ -70,6 +70,7 @@ STORAGE_CLASS_EXTERN = 1 << 2 STORAGE_CLASS_STATIC = 1 << 3 STORAGE_CLASS_AUTO = 1 << 4 STORAGE_CLASS_REGISTER = 1 << 5 +STORAGE_CLASS_THREAD_LOCAL = 1 << 6 TYPE_QUALIFIER_NONE = 0 TYPE_QUALIFIER_CONST = 1 << 1 |