File: prelude_pointer.dats

package info (click to toggle)
ats2-lang 0.4.2-4
  • links: PTS
  • area: main
  • in suites:
  • size: 40,524 kB
  • sloc: ansic: 389,898; makefile: 7,138; javascript: 1,852; lisp: 811; sh: 657; php: 573; python: 387; perl: 365
file content (48 lines) | stat: -rw-r--r-- 663 bytes parent folder | download | duplicates (6)
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
(*
** for testing [prelude/pointer]
*)

(* ****** ****** *)
//
#include
"share/atspre_staload.hats"
//
(* ****** ****** *)

#define nullp the_null_ptr

(* ****** ****** *)

val () =
{
//
val (
) = assertloc (nullp = $UNSAFE.cast{ptr}(0))
val (
) = assertloc (
  ptr_add<ptr> (nullp, 1) = add_ptr_bsz (nullp, sizeof<ptr>)
) // end of [val]
//
} (* end of [val] *)

(* ****** ****** *)

val () =
{
//
val ap =
aptr_make_elt<int> (10)
//
val-10 = aptr_get_elt<int>(ap)
val () = aptr_set_elt<int>(ap, 2 * 10)
val-20 = aptr_getfree_elt(ap)
//
} (* end of [val] *)

(* ****** ****** *)

implement main0 () = ()

(* ****** ****** *)

(* end of [prelude_pointer.dats] *)