go/test/fixedbugs
David Chase 28fb8c6987 cmd/compile: modify swt.go to skip repeated walks of switch
The compiler appears to contain several squirrelly corner
cases where nodes are double walked, some where new nodes
are created from walked parts.  Rather than trust that we
had searched hard enough for the last one, change
exprSwitch.walk() to return immediately if it has already
been walked.  This appears to be the only case where
double-walking a node is actually harmful.

Fixes #29562.

Change-Id: I0667e8769aba4c3236666cd836a934e256c0bfc5
Reviewed-on: https://go-review.googlesource.com/c/156317
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2019-01-04 21:51:37 +00:00
..
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:48:57 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-12-13 15:11:31 -08:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2014-07-16 19:27:10 -04:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:30 -05:00
2013-06-20 08:21:14 +02:00
2012-08-25 10:16:02 +02:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2015-07-11 14:36:33 +00:00
2015-07-11 14:36:33 +00:00
2015-07-11 14:36:33 +00:00
2015-07-11 14:36:33 +00:00
2012-02-18 22:15:42 +01:00
2015-07-11 14:36:33 +00:00
2012-08-25 10:16:02 +02:00
2012-09-28 08:30:30 -07:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:30 -05:00
2012-02-16 23:49:59 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:59 -05:00
2012-02-16 23:49:59 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:59 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:59 -05:00
2012-02-16 23:49:59 -05:00
2015-07-11 14:36:33 +00:00
2015-07-11 14:36:33 +00:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:59 -05:00
2012-02-16 23:49:59 -05:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:49:59 -05:00
2012-02-16 23:49:59 -05:00
2012-02-16 23:49:59 -05:00
2012-08-25 10:16:02 +02:00
2012-02-16 23:50:37 -05:00
2012-02-18 22:15:42 +01:00
2012-02-16 23:50:37 -05:00
2015-07-11 14:36:33 +00:00
2015-07-11 14:36:33 +00:00
2012-09-28 08:30:30 -07:00
2018-10-18 04:57:41 +00:00
2013-12-12 17:18:12 -08:00
2013-12-12 17:18:12 -08:00
2013-12-12 17:18:12 -08:00
2013-03-15 09:03:45 +01:00
2013-12-12 17:18:12 -08:00
2013-06-28 23:08:07 +02:00
2017-09-19 18:08:50 +00:00
2016-04-25 19:20:40 +00:00
2016-05-08 22:59:43 +00:00
2017-09-15 02:39:16 +00:00
2016-09-04 00:15:41 +00:00
2016-12-08 23:22:37 +00:00
2016-10-12 14:57:26 +00:00
2017-05-18 21:33:05 +00:00
2017-09-08 20:10:48 +00:00
2017-09-08 20:10:48 +00:00