1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
# hash: 1000 similar variable names -------------------------------------------
tcc -w -H 2>&1
// random numbers yield 1-2 collisions
#define A(n) $var_##n = 0x##n;
#define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
#define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
C(0) C(1) C(2) C(3) C(4) C(5) C(6) C(7) C(8) C(9)
EOF
variable hash: 1000 entries in 830 slots, max collisions 3
# hash: 1000 triples of similar variable names --------------------------------
tcc -w -H 2>&1
// random numbers yield 2-3 collisions
#define A(n) $var_##n = 0x##n; $sth_##n = 0x##n; $m##n##id = 0x##n;
#define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
#define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
C(0) C(1) C(2) C(3) C(4) C(5) C(6) C(7) C(8) C(9)
EOF
variable hash: 3000 entries in 2365 slots, max collisions 4
# hash: 5000 similar variable names -------------------------------------------
tcc -w -H 2>&1
// random numbers yield 2-4 collisions
// (Note: can't use much larger test cases or we run into problems with
// ElectricFence)
#define A(n) $var_##n = 0x##n;
#define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
#define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
#define D(n) C(n##0) C(n##1) C(n##2) C(n##3) C(n##4) \
C(n##5) C(n##6) C(n##7) C(n##8) C(n##9)
D(0) D(1) D(2) D(3) D(4)
EOF
variable hash: 5000 entries in 3658 slots, max collisions 4
|