diff options
author | Ayke van Laethem <[email protected]> | 2018-10-23 14:59:44 +0200 |
---|---|---|
committer | Ayke van Laethem <[email protected]> | 2018-10-23 15:00:37 +0200 |
commit | 6c6a43310abe7080f4f881fcf968d40681a814e6 (patch) | |
tree | 6c3d5ac1fb2aa2faddaadfa2743677bb9b567999 /testdata/interface.txt | |
parent | 96f74ec153dad8ce422f049131986b435c80b1ba (diff) | |
download | tinygo-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.txt | 1 |
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 |