diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/regression/tests/bug3565757.c | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'support/regression/tests/bug3565757.c')
| -rw-r--r-- | support/regression/tests/bug3565757.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/support/regression/tests/bug3565757.c b/support/regression/tests/bug3565757.c new file mode 100644 index 0000000..3dc73f4 --- /dev/null +++ b/support/regression/tests/bug3565757.c @@ -0,0 +1,73 @@ +/* + bug3565757.c +*/ + +#include <testfwk.h> + +#pragma std_c99 +#pragma disable_warning 85 + +#include <stdint.h> +#include <stdbool.h> +#include <string.h> + +typedef uint_least16_t edge_index_t; + +struct edge_t +{ + uint_fast8_t u[2]; + uint_fast8_t v[2]; + edge_index_t prev; + edge_index_t next; + bool in_stix; +}; + +#ifndef __SDCC_pdk14 // Lack of memory +struct edge_t edges[4]; + +void init_edges(void) +{ +} + +void get_edge(struct edge_t *const e, const edge_index_t e_i) +{ +} + +void set_edge(const edge_index_t e_i, const struct edge_t *const e) +{ + memcpy(edges + e_i, e, sizeof(struct edge_t)); +} + +const uint_fast8_t vertices[4][2] = {{7, 188}, {248, 188}, {248, 9}, {7, 9}}; + +struct edge_t edge_cache; + +void init_geometry(void) +{ + edge_index_t i; + init_edges(); + + for(i = 0; i < 4; i++) + { + get_edge(&edge_cache, i); + edge_cache.u[0] = vertices[(i + 0) % 4][0]; + edge_cache.u[1] = vertices[(i + 0) % 4][1]; + edge_cache.v[0] = vertices[(i + 1) % 4][0]; + edge_cache.v[1] = vertices[(i + 1) % 4][1]; + edge_cache.prev = (i + 3) % 4; + edge_cache.next = (i + 1) % 4; + set_edge(i, &edge_cache); + } +} +#endif + +void testBug(void) +{ +#ifndef __SDCC_pdk14 // Lack of memory + init_geometry(); + + ASSERT(edges[0].prev = 3); + ASSERT(edges[3].prev = 2); +#endif +} + |
