resolve a problem with the following test.c program, tcc -E test.c #ifdef _XOPEN_SOURCE # define __USE_XOPEN 1 # if (_XOPEN_SOURCE - 0) >= 500 # define __USE_XOPEN_EXTENDED 1 # define __USE_UNIX98 1 # undef _LARGEFILE_SOURCE # define _LARGEFILE_SOURCE 1 # if (_XOPEN_SOURCE - 0) >= 600 # define __USE_XOPEN2K 1 # undef __USE_ISOC99 # define __USE_ISOC99 1 # endif # else # ifdef _XOPEN_SOURCE_EXTENDED # define __USE_XOPEN_EXTENDED 1 # endif # endif #endif int main() {} // # 17 "aaa.c" // aaa.c:17: error: #endif without matching #if
Unified · Split
| @@ -1166,7 +1166,7 @@ ST_FUNC int tcc_add_file_internal(TCCState *s1, const char *filename, int flags, · 1165 unmodified lines | |||
| 1166 | /* if .S file, define __ASSEMBLER__ like gcc does */ | 1166 | /* if .S file, define __ASSEMBLER__ like gcc does */ |
| 1167 | if ((filetype == TCC_FILETYPE_ASM) || (filetype == TCC_FILETYPE_ASM_PP)) { | 1167 | if ((filetype == TCC_FILETYPE_ASM) || (filetype == TCC_FILETYPE_ASM_PP)) { |
| 1168 | tcc_define_symbol(s1, "__ASSEMBLER__", NULL); | 1168 | tcc_define_symbol(s1, "__ASSEMBLER__", NULL); |
| 1169 | parse_flags = PARSE_FLAG_ASM_FILE; | 1169 | parse_flags = PARSE_FLAG_ASM_FILE | PARSE_FLAG_ASM_COMMENTS; |
| 1170 | } | 1170 | } |
| 1171 | #endif | 1171 | #endif |
| 1172 | 1172 | ||
| @@ -3290,9 +3290,8 @@ ST_FUNC int tcc_preprocess(TCCState *s1) · 3289 unmodified lines | |||
| 3290 | preprocess_init(s1); | 3290 | preprocess_init(s1); |
| 3291 | ch = file->buf_ptr[0]; | 3291 | ch = file->buf_ptr[0]; |
| 3292 | tok_flags = TOK_FLAG_BOL | TOK_FLAG_BOF; | 3292 | tok_flags = TOK_FLAG_BOL | TOK_FLAG_BOF; |
| 3293 | parse_flags = (parse_flags & PARSE_FLAG_ASM_FILE); | 3293 | parse_flags &= (PARSE_FLAG_ASM_FILE | PARSE_FLAG_ASM_COMMENTS); |
| 3294 | parse_flags |= PARSE_FLAG_ASM_COMMENTS | PARSE_FLAG_PREPROCESS | | 3294 | parse_flags |= PARSE_FLAG_PREPROCESS | PARSE_FLAG_LINEFEED | PARSE_FLAG_SPACES; |
| 3295 | PARSE_FLAG_LINEFEED | PARSE_FLAG_SPACES; | ||
| 3296 | token_seen = 0; | 3295 | token_seen = 0; |
| 3297 | file->line_ref = 0; | 3296 | file->line_ref = 0; |
| 3298 | file_ref = NULL; | 3297 | file_ref = NULL; |