Commit 6b72b070 authored by Rémy Oudompheng's avatar Rémy Oudompheng Committed by Luuk van Dijk

gc: do not compile switch on interface values into a binary search.

Fixes #2672.

R=golang-dev, lvd
CC=golang-dev, remy
https://golang.org/cl/5543058
parent a9e1f6d7
......@@ -540,7 +540,7 @@ loop:
}
// deal with the variables one-at-a-time
if(c0->type != Texprconst) {
if(!okforcmp[t->etype] || c0->type != Texprconst) {
a = exprbsw(c0, 1, arg);
cas = list(cas, a);
c0 = c0->link;
......
// $G $D/$F.go || echo BUG: bug393
// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// issue 2672
// was trying binary search with an interface type
package main
func f(x interface{}) int {
switch x {
case 1:
return 1
case 2:
return 2
case 3:
return 3
case 4:
return 4
case "5":
return 5
case "6":
return 6
default:
return 7
}
panic("switch")
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment