aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-09-10 15:03:56 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-09-10 15:03:56 -0700
commitbb7546d9f4b694b96a971e39f4d81fec0bb0610b (patch)
tree699683c8c49edf02caba8eb298c53c28eb9b713b /tests
parentc33af789cb9d37ccea5cfb7cc3eef87c2eb8d2fd (diff)
handle flexible arrays at the end of structs, whose elements are themselves structs; fixes #1602
Diffstat (limited to 'tests')
-rw-r--r--tests/test_core.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test_core.py b/tests/test_core.py
index 1dd07307..54fbdcd1 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -5432,6 +5432,34 @@ The current type of b is: 9
'''
self.do_run(src, 'memmove can be very useful....!')
+ def test_flexarray_struct(self):
+ src = r'''
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+typedef struct
+{
+ uint16_t length;
+ struct
+ {
+ int32_t int32;
+ } value[];
+} Tuple;
+
+int main() {
+ Tuple T[10];
+ Tuple *t = &T[0];
+
+ t->length = 4;
+ t->value->int32 = 100;
+
+ printf("(%d, %d)\n", t->length, t->value->int32);
+ return 0;
+}
+'''
+ self.do_run(src, '(4, 100)')
+
def test_bsearch(self):
if Settings.QUANTUM_SIZE == 1: return self.skip('Test cannot work with q1')