From 569c20f104f7f3f661e8939fda3cd37be746655f Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 23 Jul 2009 19:21:14 +0200 Subject: [PATCH] tccpp: fix quirk with cached headers and #else Such as with #ifndef FOO_H ... #else ... #endif --- tccpp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tccpp.c b/tccpp.c index d03adc0f..ecdaf172 100644 --- a/tccpp.c +++ b/tccpp.c @@ -1392,7 +1392,7 @@ include_done: if (s1->ifdef_stack_ptr[-1] & 2) error("#else after #else"); c = (s1->ifdef_stack_ptr[-1] ^= 3); - goto test_skip; + goto test_else; case TOK_ELIF: if (s1->ifdef_stack_ptr == s1->ifdef_stack) error("#elif without matching #if"); @@ -1404,6 +1404,9 @@ include_done: goto skip; c = expr_preprocess(); s1->ifdef_stack_ptr[-1] = c; + test_else: + if (s1->ifdef_stack_ptr == file->ifdef_stack_ptr + 1) + file->ifndef_macro = 0; test_skip: if (!(c & 1)) { skip: -- 2.11.4.GIT