diff options
author | Colin Walters <walters@verbum.org> | 2011-06-01 18:29:35 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2011-06-02 16:55:31 -0400 |
commit | ae4fb7928cc2e311c0f2e91a7c7ac673184a2eb2 (patch) | |
tree | 74aad3b72722356388dddbbe6ec9342508d93c55 | |
parent | e70cdbce955475915ea441bdbd45d02d825786f6 (diff) | |
download | gobject-introspection-ae4fb7928cc2e311c0f2e91a7c7ac673184a2eb2.tar.gz |
scanner: Parse GNUC expression statements
This is needed so we don't fail to parse gatomic.h from GLib.
https://bugzilla.gnome.org/show_bug.cgi?id=651548
-rw-r--r-- | giscanner/scannerparser.y | 4 | ||||
-rw-r--r-- | tests/scanner/regress.h | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y index 6400f728..8b9ce444 100644 --- a/giscanner/scannerparser.y +++ b/giscanner/scannerparser.y @@ -259,6 +259,10 @@ primary_expression { $$ = $2; } + | EXTENSION '(' '{' block_item_list '}' ')' + { + $$ = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, lineno); + } ; /* concatenate adjacent string literal tokens */ diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index f463a03e..9f326405 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -694,4 +694,8 @@ void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str); #define REGRESS_UTF8_CONSTANT "const \xe2\x99\xa5 utf8" +#ifdef __GNUC__ +#define REGRESS_TEST_GNUC_EXTENSION_STMT(foo) (G_GNUC_EXTENSION ({ int x[10]; x[5] = 42; x[5]; })) +#endif + #endif /* __GITESTTYPES_H__ */ |