aboutsummaryrefslogtreecommitdiffstats
path: root/sys/decl.go
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2016-09-15 13:45:06 +0200
committerAndrey Konovalov <andreyknvl@google.com>2016-09-19 16:16:24 +0200
commitf41935d53ff6271e8c2a9022f41b99ccee9b634b (patch)
tree881e9441318a2be9ef7f20bff33ffcc1aa05e97a /sys/decl.go
parent9decc82111be1754889e46944a6c6bfdfefdbeb7 (diff)
Allow range sized arrays
Diffstat (limited to 'sys/decl.go')
-rw-r--r--sys/decl.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/sys/decl.go b/sys/decl.go
index a447948bc..a87b51d91 100644
--- a/sys/decl.go
+++ b/sys/decl.go
@@ -236,21 +236,27 @@ func (t FilenameType) Align() uintptr {
return 1
}
+type ArrayKind int
+
+const (
+ ArrayRandLen ArrayKind = iota
+ ArrayRangeLen
+)
+
type ArrayType struct {
TypeCommon
- Type Type
- Len uintptr // 0 if variable-length, unused for now
+ Type Type
+ Kind ArrayKind
+ RangeBegin uintptr
+ RangeEnd uintptr
}
func (t ArrayType) Size() uintptr {
- if t.Len == 0 {
- return 0 // for trailing embed arrays
- }
- return t.Len * t.Type.Size()
+ panic("should not be called")
}
func (t ArrayType) Align() uintptr {
- return t.Type.Align()
+ panic("should not be called")
}
type PtrType struct {