aboutsummaryrefslogtreecommitdiffhomepage
path: root/testdata/interface.txt
diff options
context:
space:
mode:
authorAyke van Laethem <[email protected]>2018-10-23 14:59:44 +0200
committerAyke van Laethem <[email protected]>2018-10-23 15:00:37 +0200
commit6c6a43310abe7080f4f881fcf968d40681a814e6 (patch)
tree6c3d5ac1fb2aa2faddaadfa2743677bb9b567999 /testdata/interface.txt
parent96f74ec153dad8ce422f049131986b435c80b1ba (diff)
downloadtinygo-6c6a43310abe7080f4f881fcf968d40681a814e6.tar.gz
tinygo-6c6a43310abe7080f4f881fcf968d40681a814e6.zip
compiler: fix invalid incoming block in complex typeassert flow
A single *ssa.BasicBlock may be split in multiple LLVM basic blocks due to typeassert instructions. This means the incoming block and outgoing block are different. PHI nodes need to get the result from the outgoing block, which was fixed before, but incoming branches need to branch to the incoming block, not the outgoing block. Branching to the outgoing block led to a LLVM verification error when compiling the fmt package. Originally found in (*fmt.pp).handleMethods.
Diffstat (limited to 'testdata/interface.txt')
-rw-r--r--testdata/interface.txt1
1 files changed, 1 insertions, 0 deletions
diff --git a/testdata/interface.txt b/testdata/interface.txt
index c9bce6beb..3f3989747 100644
--- a/testdata/interface.txt
+++ b/testdata/interface.txt
@@ -16,3 +16,4 @@ is Tuple: 0 8 16 24
SmallPair.Print: 3 5
Stringer.String(): foo
Stringer.(*Thing).String(): foo
+nested switch: true