1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h>
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(void)
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   void* x = malloc(10);
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int   *x4;
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   short *x2;
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   char  *x1;
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int    y4;
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   short  y2;
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   char   y1;
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   x4 = x-4;
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   x2 = x-4;
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   x1 = x-1;
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // Invalid reads and writes of sizes 4, 2, 1
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   y4 = *x4;
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   *x4 = y4;
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   y2 = *x2;
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   *x2 = y2;
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   y1 = *x1;
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   *x1 = y1;
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return 0;
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
30