1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
INCLUDE "../../../pseudocode-lib/memory.cps"
TYPE Raw = C_TYPE("void*")
DECLARE Empty : Raw
TYPE Size0 = C_TYPE("_Bool")
TYPE Size1 = C_TYPE("char")
TYPE Size2 = C_TYPE("signed char")
TYPE Size3 = C_TYPE("unsigned char")
TYPE Size4 = C_TYPE("short")
TYPE Size5 = C_TYPE("unsigned short")
TYPE Size6 = C_TYPE("int")
TYPE Size7 = C_TYPE("unsigned int")
TYPE Size8 = C_TYPE("long")
TYPE Size9 = C_TYPE("unsigned long")
TYPE Size10 = C_TYPE("long long")
TYPE Size11 = C_TYPE("unsigned long long")
OUTPUT malloc((Size0)0) = Empty, realloc(Empty, (Size0)0) = Empty
FREE(REALLOC(MALLOC((Size0)1), (Size0)2))
OUTPUT malloc((Size1)0) = Empty, realloc(Empty, (Size1)0) = Empty
FREE(REALLOC(MALLOC((Size1)1), (Size1)2))
OUTPUT malloc((Size2)0) = Empty, realloc(Empty, (Size2)0) = Empty
FREE(REALLOC(MALLOC((Size2)1), (Size2)2))
OUTPUT malloc((Size3)0) = Empty, realloc(Empty, (Size3)0) = Empty
FREE(REALLOC(MALLOC((Size3)1), (Size3)2))
OUTPUT malloc((Size4)0) = Empty, realloc(Empty, (Size4)0) = Empty
FREE(REALLOC(MALLOC((Size4)1), (Size4)2))
OUTPUT malloc((Size5)0) = Empty, realloc(Empty, (Size5)0) = Empty
FREE(REALLOC(MALLOC((Size5)1), (Size5)2))
OUTPUT malloc((Size6)0) = Empty, realloc(Empty, (Size6)0) = Empty
FREE(REALLOC(MALLOC((Size6)1), (Size6)2))
OUTPUT malloc((Size7)0) = Empty, realloc(Empty, (Size7)0) = Empty
FREE(REALLOC(MALLOC((Size7)1), (Size7)2))
OUTPUT malloc((Size8)0) = Empty, realloc(Empty, (Size8)0) = Empty
FREE(REALLOC(MALLOC((Size8)1), (Size8)2))
OUTPUT malloc((Size9)0) = Empty, realloc(Empty, (Size9)0) = Empty
FREE(REALLOC(MALLOC((Size9)1), (Size9)2))
OUTPUT malloc((Size10)0) = Empty, realloc(Empty, (Size10)0) = Empty
FREE(REALLOC(MALLOC((Size10)1), (Size10)2))
OUTPUT malloc((Size11)0) = Empty, realloc(Empty, (Size11)0) = Empty
FREE(REALLOC(MALLOC((Size11)1), (Size11)2))
CLASS Item
Value : INTEGER
ENDCLASS
TYPE ItemPointer = ^Item
DECLARE Obj : Item
DECLARE P : ItemPointer
DECLARE Address : Raw
Obj <- NEW Item()
Obj.Value <- 7
P <- ^Obj
Address <- REALLOC((Raw)P, 16)
P <- (ItemPointer)Address
OUTPUT P^.Value
DELETE P^
P <- (ItemPointer)MALLOC(8)
P^.Value <- 17
OUTPUT P^.Value
DELETE P^
Obj <- NEW Item()
P <- ^Obj
Address <- (Raw)P
FREE(Address)
TRY
DELETE Obj
CATCH
OUTPUT 1
ENDTRY
TRY
MALLOC((Size2)-1)
CATCH
OUTPUT 2
ENDTRY
TRY
MALLOC((Size11)-1)
CATCH
OUTPUT 3
ENDTRY
|