Hello This patch fixes a couple of issues with the latest patch series for metadirectives. Firstly, the changes to c_parser_skip_to_end_of_block_or_statement and its C++ equivalent cause a couple of tests (e.g. gcc.dg/attr-malloc.c) to regress. This is because these tests cause the parser to skip code starting from within a pair of brackets - this causes the unsigned nesting_depth to wrap around to UINT_MAX when a ')' is encountered and so semicolons no longer stop the skipping, causing too much code to be skipped and resulting in the test regressions. This is fixed by tracking the bracket nesting level separately from the brace nesting level in a signed int, and to allow skipping to end with negative values. Secondly, user condition selectors containing only compile-time constants should be treated as static rather than dynamic. In practice though it doesn't matter much, as GCC readily eliminates the resulting 'if ()' statements via constant folding. These fixes should be merged into the original metadirective patches. Thanks Kwok