mescc: drop naive realloc.
[mes.git] / scaffold / tests / 7a-struct-char-array.c
1 /* -*-comment-start: "//";comment-end:""-*-
2  * Mes --- Maxwell Equations of Software
3  * Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of Mes.
6  *
7  * Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #include "30-test.i"
22
23 struct file {
24   unsigned char buffer[1];
25 };
26
27 int fill0;
28 int fill1;
29 int fill2;
30 int fill3;
31 int fill4;
32
33 struct file file;
34
35 int fill5;
36 int fill6;
37 int fill7;
38 int fill8;
39 int fill9;
40
41 int
42 test ()
43 {
44   struct file *pfile = &file;
45   strcpy (file.buffer, "0123456789\n");
46   eputs (file.buffer);
47   char *p = pfile->buffer;
48   if (p[4] != '4') return 1;
49   if (file.buffer[4] != '4') return 2;
50   if (pfile->buffer[4] != '4') return 3;
51
52   memcpy (pfile->buffer + 4, " ", 1);
53   eputs (file.buffer);
54   if (p[4] != ' ') return 4;
55   if (file.buffer[4] != ' ') return 5;
56   if (pfile->buffer[4] != ' ') return 6;
57
58   strcpy (file.buffer, "0123456789\n");
59   eputs (file.buffer);
60   p[4] = 'A';
61   eputs (file.buffer);
62   if (p[4] != 'A') return 7;
63   if (file.buffer[4] != 'A') return 8;
64   if (pfile->buffer[4] != 'A') return 9;
65
66   return 0;
67 }