tccgen: nodata_wanted

The existing variable 'nocode_wanted' is now used to control
output of static data too. So...

(nocode_wanted == 0)
    code and data (normal within functions)
(nocode_wanted < 0)
    means: no code, but data (global or static data)
(nocode_wanted > 0)
    means: no code and no data (code and data suppressed)
(nocode_wanted & 0xC0000000)
    means:  we're in declaration of static data

Also: new option '-dT' to be used with -run
    tcc -dT -run file.c
This will look in file.c for certain comment-boundaries:
    /*-* test-xxx: ...some description */
and then for each test below run it from memory.  This way
various features and error messages can be tested with one
single file.  See 96_nodata_wanted.c for an example.

Also: tccgen.c: one more bitfield fix
This commit is contained in:
grischka
2017-07-16 12:10:00 +02:00
parent 69a137ff88
commit 7f1ab9b1e1
10 changed files with 330 additions and 86 deletions

2
tcc.c
View File

@@ -282,6 +282,8 @@ redo:
n = s->nb_files;
if (n == 0)
tcc_error("no input files\n");
if (s->do_test)
tcc_tool_test(s, argc, argv); /* maybe never returns */
if (s->output_type == TCC_OUTPUT_PREPROCESS) {
if (!s->outfile) {