compiler: support recursive types

Previously, the cycle was broken by inserting an unsafe.Pointer type in
some places. This is of course incorrect, and makes debugging harder.
However, LLVM provides a way to make temporary nodes that are later
replaced, exactly for this purpose.

This commit uses those temporary metadata nodes to allow such recursive
types.
This commit is contained in:
Ayke van Laethem
2019-10-13 17:11:57 +02:00
committed by Ron Evans
parent be9e4f439c
commit 52bac4d75b
3 changed files with 37 additions and 5 deletions
+1
View File
@@ -9,3 +9,4 @@ test5 1 2 3
test6 foo 3 5
test7 (0:nil) 8
test8 2 3 12 13 6
test9 nil