Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | typedef unsigned char small_t; | - |
5 | | - |
6 | _Static_assert (2 * sa_alignment_max - 1 <= (small_t) -1, "verify (" "2 * sa_alignment_max - 1 <= (small_t) -1" ")"); | - |
7 | | - |
8 | void * | - |
9 | mmalloca (size_t n) | - |
10 | { | - |
11 | | - |
12 | | - |
13 | | - |
14 | size_t nplus = n + sizeof (small_t) + 2 * sa_alignment_max - 1; | - |
15 | | - |
16 | if (nplus >= nTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
17 | { | - |
18 | char *mem = (char *) malloc (nplus); | - |
19 | | - |
20 | if (mem != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
21 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
22 | ) | - |
23 | { | - |
24 | char *p = | - |
25 | (char *)((((uintptr_t)mem + sizeof (small_t) + sa_alignment_max - 1) | - |
26 | & ~(uintptr_t)(2 * sa_alignment_max - 1)) | - |
27 | + sa_alignment_max); | - |
28 | | - |
29 | | - |
30 | | - |
31 | | - |
32 | | - |
33 | ((small_t *) p)[-1] = p - mem; | - |
34 | | - |
35 | return never executed: return p; p;never executed: return p; | 0 |
36 | } | - |
37 | } never executed: end of block | 0 |
38 | | - |
39 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
40 | ((void *)0) never executed: return ((void *)0) ; | 0 |
41 | ; never executed: return ((void *)0) ; | 0 |
42 | | - |
43 | | - |
44 | | - |
45 | | - |
46 | | - |
47 | | - |
48 | | - |
49 | } | - |
50 | | - |
51 | | - |
52 | void | - |
53 | freea (void *p) | - |
54 | { | - |
55 | | - |
56 | if ((TRUE | never evaluated | FALSE | never evaluated |
uintptr_t) p & (sa_alignment_max - 1)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
57 | { | - |
58 | | - |
59 | abort (); never executed: abort (); | 0 |
60 | } | - |
61 | | - |
62 | if ((TRUE | never evaluated | FALSE | never evaluated |
uintptr_t) p & sa_alignment_maxTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
63 | { | - |
64 | void *mem = (char *) p - ((small_t *) p)[-1]; | - |
65 | free (mem); | - |
66 | } never executed: end of block | 0 |
67 | } never executed: end of block | 0 |
| | |