aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/pre-process.c
diff options
authorAlexey Dobriyan <adobriyan@gmail.com>2007-05-26 04:24:38 +0400
committerJosh Triplett <josh@freedesktop.org>2007-06-03 15:25:36 -0700
commit3d71d1e095bbcba288fa63ed07f990ead490e024 (patch)
tree44fca9901ffcfa997b31f97f71375c5b2e0201ca /pre-process.c
parent97557dc9ee316edc29e8cdf42b5a6b6b37da2f4c (diff)
downloadsparse-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.c4
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;
}