* -dt now with lowercase t
* test snippets now separated by real preprocessor statements
which is valid C also for other compilers
#if defined test_xxx
< test snippet x >
#elif defined test_yyy
< test snippet y >
#elif ...
#endif
* simpler implementation, behaves like -run if no 'test_...' macros
are seen, works with -E too
* for demonstration I combined some of the small tests for errors
and warnings (56..63,74) in "60_errors_and_warnings.c"
Also:
* libtcc.c:
put tcc_preprocess() and tcc_assemble() under the setjmp clause
to let them return to caller after errors. This is for -dt -E.
* tccgen.c:
- get rid of save/restore_parse_state(), macro_ptr is saved
by begin_macro anyway, now line_num too.
- use expr_eq for parsing _Generic's controlling_type
- set nocode_wanted with const_wanted. too, This is to keep
VT_JMP on vtop when parsing preprocessor expressions.
* tccpp.c: tcc -E: suppress trailing whitespace from lines with
comments (that -E removes) such as
NO_GOTPLT_ENTRY,\t /* never generate ... */
28 lines
858 B
Text
28 lines
858 B
Text
[test_56_btype_excess_1]
|
|
60_errors_and_warnings.c:2: error: too many basic types
|
|
|
|
[test_57_btype_excess_2]
|
|
60_errors_and_warnings.c:5: error: too many basic types
|
|
|
|
[test_58_function_redefinition]
|
|
60_errors_and_warnings.c:9: error: redefinition of 'f'
|
|
|
|
[test_global_redefinition]
|
|
60_errors_and_warnings.c:14: error: redefinition of 'xxx'
|
|
|
|
[test_59_function_array]
|
|
60_errors_and_warnings.c:17: error: declaration of an array of functions
|
|
|
|
[test_60_enum_redefinition]
|
|
60_errors_and_warnings.c:21: error: struct/union/enum already defined
|
|
|
|
[test_62_enumerator_redefinition]
|
|
60_errors_and_warnings.c:26: error: redefinition of enumerator 'RED'
|
|
|
|
[test_63_local_enumerator_redefinition]
|
|
|
|
[test_61_undefined_enum]
|
|
60_errors_and_warnings.c:46: error: unknown type size
|
|
|
|
[test_74_non_const_init]
|
|
60_errors_and_warnings.c:49: error: initializer element is not constant
|