aboutsummaryrefslogtreecommitdiff
path: root/tccpp.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccpp.c')
-rw-r--r--tccpp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tccpp.c b/tccpp.c
index d03adc0..ecdaf17 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: