struct-init: Cleanup
Remove dead code and variables. Properly check for unions when skipping fields in initializers. Make tests2/*.expect depend on the .c files so they are automatically rebuilt when the latter change.
This commit is contained in:
@ -67,6 +67,16 @@ struct V gv3 = {((struct S){7,8,{9,10}}), {"hoho", 49}, 50};
|
||||
/* Initialization of a flex array member (warns in GCC) */
|
||||
struct W gw = {{1,2,3,4}, {1,2,3,4,5}};
|
||||
|
||||
union UU {
|
||||
u8 a;
|
||||
u8 b;
|
||||
};
|
||||
struct SU {
|
||||
union UU u;
|
||||
u8 c;
|
||||
};
|
||||
struct SU gsu = {5,6};
|
||||
|
||||
#include <stdio.h>
|
||||
void print_ (const char *name, const u8 *p, long size)
|
||||
{
|
||||
@ -133,6 +143,7 @@ int main()
|
||||
print(gv3);
|
||||
print(sinit16);
|
||||
print(gw);
|
||||
print(gsu);
|
||||
foo(&gw);
|
||||
//printf("q: %s\n", q);
|
||||
return 0;
|
||||
|
||||
@ -12,6 +12,7 @@ gv2: 7 8 9 a 68 69 68 69 0 0 0 0 0 0 0 0 0 0 0 0 2f 30
|
||||
gv3: 7 8 9 a 68 6f 68 6f 0 0 0 0 0 0 0 0 0 0 0 0 31 32
|
||||
sinit16: 1 0 0 0 2 0 0 0
|
||||
gw: 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
gsu: 5 6
|
||||
ls: 1 2 3 4
|
||||
ls2: 1 2 3 4
|
||||
lt: 68 65 6c 6c 6f 0 0 0 0 0 0 0 0 0 0 0 2a
|
||||
|
||||
@ -53,7 +53,7 @@ all test: $(filter-out $(SKIP),$(TESTS))
|
||||
@diff -Nbu $(SRC)/$*.expect $*.output && rm -f $*.output
|
||||
|
||||
# automatically generate .expect files with gcc:
|
||||
%.expect :
|
||||
%.expect : %.c
|
||||
(gcc -w $*.c -o a.exe && ./a.exe $(ARGS)) >$*.expect 2>&1; rm -f a.exe
|
||||
|
||||
# tell make not to delete
|
||||
|
||||
Reference in New Issue
Block a user