diff options
| author | grischka <grischka> | 2009-07-23 19:21:14 +0200 |
|---|---|---|
| committer | grischka <grischka> | 2009-08-24 13:30:01 +0200 |
| commit | 569c20f104f7f3f661e8939fda3cd37be746655f (patch) | |
| tree | afe971448a2ff99d05857e0f6ff2cccdd02f8e5c | |
| parent | 1026ca58881193dfe28332036d066e44ef0b0e68 (diff) | |
| download | tinycc-569c20f104f7f3f661e8939fda3cd37be746655f.tar.gz tinycc-569c20f104f7f3f661e8939fda3cd37be746655f.tar.bz2 | |
tccpp: fix quirk with cached headers and #else
Such as with
#ifndef FOO_H
...
#else
...
#endif
| -rw-r--r-- | tccpp.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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: |
