|
2 | 2 |
|
3 | 3 | namespace fbc_tests.structs.anon_access |
4 | 4 |
|
5 | | -type UDT |
| 5 | +type PodUdt |
| 6 | + i as integer |
| 7 | +end type |
| 8 | + |
| 9 | +type CtorUdt |
6 | 10 | as integer a, b |
7 | 11 | declare constructor( ) |
8 | 12 | end type |
9 | 13 |
|
10 | | -constructor UDT( ) |
| 14 | +constructor CtorUdt( ) |
11 | 15 | a = 123 |
12 | 16 | b = 456 |
13 | 17 | end constructor |
14 | 18 |
|
| 19 | +sub test cdecl( ) |
| 20 | + CU_ASSERT( (type<PodUdt>( 123 )).i = 123 ) |
| 21 | + CU_ASSERT( type<PodUdt>( 123 ).i = 123 ) |
| 22 | +end sub |
| 23 | + |
15 | 24 | private sub test3538470 cdecl( ) |
16 | 25 | '' Regression test for bug #3538470 |
17 | 26 | '' This used to trigger an out-of-bounds array access in fbc |
18 | 27 | dim x as integer |
19 | 28 |
|
20 | 29 | CU_ASSERT( x = 0 ) |
21 | | - x = (UDT( )).a |
| 30 | + x = (CtorUdt( )).a |
22 | 31 | CU_ASSERT( x = 123 ) |
23 | | - CU_ASSERT( (UDT( )).a = 123 ) |
24 | | - CU_ASSERT( 123 = (UDT( )).a ) |
| 32 | + CU_ASSERT( (CtorUdt( )).a = 123 ) |
| 33 | + CU_ASSERT( 123 = (CtorUdt( )).a ) |
25 | 34 |
|
26 | | - x = (UDT( )).b |
| 35 | + x = (CtorUdt( )).b |
27 | 36 | CU_ASSERT( x = 456 ) |
28 | | - CU_ASSERT( (UDT( )).b = 456 ) |
29 | | - CU_ASSERT( 456 = (UDT( )).b ) |
| 37 | + CU_ASSERT( (CtorUdt( )).b = 456 ) |
| 38 | + CU_ASSERT( 456 = (CtorUdt( )).b ) |
30 | 39 |
|
31 | | - x = (type<UDT>( )).a |
| 40 | + x = (type<CtorUdt>( )).a |
32 | 41 | CU_ASSERT( x = 123 ) |
33 | | - CU_ASSERT( (type<UDT>( )).a = 123 ) |
34 | | - CU_ASSERT( 123 = (type<UDT>( )).a ) |
| 42 | + CU_ASSERT( (type<CtorUdt>( )).a = 123 ) |
| 43 | + CU_ASSERT( 123 = (type<CtorUdt>( )).a ) |
35 | 44 |
|
36 | | - x = (type<UDT>( )).b |
| 45 | + x = (type<CtorUdt>( )).b |
37 | 46 | CU_ASSERT( x = 456 ) |
38 | | - CU_ASSERT( (type<UDT>( )).b = 456 ) |
39 | | - CU_ASSERT( 456 = (type<UDT>( )).b ) |
| 47 | + CU_ASSERT( (type<CtorUdt>( )).b = 456 ) |
| 48 | + CU_ASSERT( 456 = (type<CtorUdt>( )).b ) |
40 | 49 | end sub |
41 | 50 |
|
42 | 51 | private sub ctor( ) constructor |
43 | 52 | fbcu.add_suite( "tests/structs/anon-access" ) |
44 | 53 | fbcu.add_test( "#3538470", @test3538470 ) |
| 54 | + fbcu.add_test( "test", @test ) |
45 | 55 | end sub |
46 | 56 |
|
47 | 57 | end namespace |
0 commit comments