diff options
| author | Alexey Dobriyan <adobriyan@gmail.com> | 2007-05-26 04:24:38 +0400 |
|---|---|---|
| committer | Josh Triplett <josh@freedesktop.org> | 2007-06-03 15:25:36 -0700 |
| commit | 3d71d1e095bbcba288fa63ed07f990ead490e024 (patch) | |
| tree | 44fca9901ffcfa997b31f97f71375c5b2e0201ca /pre-process.c | |
| parent | 97557dc9ee316edc29e8cdf42b5a6b6b37da2f4c (diff) | |
| download | sparse-dev-3d71d1e095bbcba288fa63ed07f990ead490e024.tar.gz | |
Fix infinite loop in free_preprocessor_line()
While running if-2.c from gcc testsuite sparse goes into infinite loop in
free_preprocessor_line().
Trimmed down test-case is
#if 1
#if
(two lines)
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Diffstat (limited to 'pre-process.c')
| -rw-r--r-- | pre-process.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pre-process.c b/pre-process.c index 8fca3835..ca1d8ef2 100644 --- a/pre-process.c +++ b/pre-process.c @@ -763,11 +763,11 @@ out: static int free_preprocessor_line(struct token *token) { - do { + while (token_type(token) != TOKEN_EOF) { struct token *free = token; token = token->next; __free_token(free); - } while (token_type(token) != TOKEN_EOF); + }; return 1; } |
