Change-Id: I69c1688506d1aeca655047acf35d1bff966fc01e
Reviewed-on: https://go-review.googlesource.com/98442
Run-TryBot: Giovanni Bajo <rasky@develer.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
`,
neg: []string{"memmove"},
},
- // Nil checks before calling interface methods
- {
- fn: `
- type I interface {
- foo000()
- foo001()
- foo002()
- foo003()
- foo004()
- foo005()
- foo006()
- foo007()
- foo008()
- foo009()
- foo010()
- foo011()
- foo012()
- foo013()
- foo014()
- foo015()
- foo016()
- foo017()
- foo018()
- foo019()
- foo020()
- foo021()
- foo022()
- foo023()
- foo024()
- foo025()
- foo026()
- foo027()
- foo028()
- foo029()
- foo030()
- foo031()
- foo032()
- foo033()
- foo034()
- foo035()
- foo036()
- foo037()
- foo038()
- foo039()
- foo040()
- foo041()
- foo042()
- foo043()
- foo044()
- foo045()
- foo046()
- foo047()
- foo048()
- foo049()
- foo050()
- foo051()
- foo052()
- foo053()
- foo054()
- foo055()
- foo056()
- foo057()
- foo058()
- foo059()
- foo060()
- foo061()
- foo062()
- foo063()
- foo064()
- foo065()
- foo066()
- foo067()
- foo068()
- foo069()
- foo070()
- foo071()
- foo072()
- foo073()
- foo074()
- foo075()
- foo076()
- foo077()
- foo078()
- foo079()
- foo080()
- foo081()
- foo082()
- foo083()
- foo084()
- foo085()
- foo086()
- foo087()
- foo088()
- foo089()
- foo090()
- foo091()
- foo092()
- foo093()
- foo094()
- foo095()
- foo096()
- foo097()
- foo098()
- foo099()
- foo100()
- foo101()
- foo102()
- foo103()
- foo104()
- foo105()
- foo106()
- foo107()
- foo108()
- foo109()
- foo110()
- foo111()
- foo112()
- foo113()
- foo114()
- foo115()
- foo116()
- foo117()
- foo118()
- foo119()
- foo120()
- foo121()
- foo122()
- foo123()
- foo124()
- foo125()
- foo126()
- foo127()
- foo128()
- foo129()
- foo130()
- foo131()
- foo132()
- foo133()
- foo134()
- foo135()
- foo136()
- foo137()
- foo138()
- foo139()
- foo140()
- foo141()
- foo142()
- foo143()
- foo144()
- foo145()
- foo146()
- foo147()
- foo148()
- foo149()
- foo150()
- foo151()
- foo152()
- foo153()
- foo154()
- foo155()
- foo156()
- foo157()
- foo158()
- foo159()
- foo160()
- foo161()
- foo162()
- foo163()
- foo164()
- foo165()
- foo166()
- foo167()
- foo168()
- foo169()
- foo170()
- foo171()
- foo172()
- foo173()
- foo174()
- foo175()
- foo176()
- foo177()
- foo178()
- foo179()
- foo180()
- foo181()
- foo182()
- foo183()
- foo184()
- foo185()
- foo186()
- foo187()
- foo188()
- foo189()
- foo190()
- foo191()
- foo192()
- foo193()
- foo194()
- foo195()
- foo196()
- foo197()
- foo198()
- foo199()
- foo200()
- foo201()
- foo202()
- foo203()
- foo204()
- foo205()
- foo206()
- foo207()
- foo208()
- foo209()
- foo210()
- foo211()
- foo212()
- foo213()
- foo214()
- foo215()
- foo216()
- foo217()
- foo218()
- foo219()
- foo220()
- foo221()
- foo222()
- foo223()
- foo224()
- foo225()
- foo226()
- foo227()
- foo228()
- foo229()
- foo230()
- foo231()
- foo232()
- foo233()
- foo234()
- foo235()
- foo236()
- foo237()
- foo238()
- foo239()
- foo240()
- foo241()
- foo242()
- foo243()
- foo244()
- foo245()
- foo246()
- foo247()
- foo248()
- foo249()
- foo250()
- foo251()
- foo252()
- foo253()
- foo254()
- foo255()
- foo256()
- foo257()
- foo258()
- foo259()
- foo260()
- foo261()
- foo262()
- foo263()
- foo264()
- foo265()
- foo266()
- foo267()
- foo268()
- foo269()
- foo270()
- foo271()
- foo272()
- foo273()
- foo274()
- foo275()
- foo276()
- foo277()
- foo278()
- foo279()
- foo280()
- foo281()
- foo282()
- foo283()
- foo284()
- foo285()
- foo286()
- foo287()
- foo288()
- foo289()
- foo290()
- foo291()
- foo292()
- foo293()
- foo294()
- foo295()
- foo296()
- foo297()
- foo298()
- foo299()
- foo300()
- foo301()
- foo302()
- foo303()
- foo304()
- foo305()
- foo306()
- foo307()
- foo308()
- foo309()
- foo310()
- foo311()
- foo312()
- foo313()
- foo314()
- foo315()
- foo316()
- foo317()
- foo318()
- foo319()
- foo320()
- foo321()
- foo322()
- foo323()
- foo324()
- foo325()
- foo326()
- foo327()
- foo328()
- foo329()
- foo330()
- foo331()
- foo332()
- foo333()
- foo334()
- foo335()
- foo336()
- foo337()
- foo338()
- foo339()
- foo340()
- foo341()
- foo342()
- foo343()
- foo344()
- foo345()
- foo346()
- foo347()
- foo348()
- foo349()
- foo350()
- foo351()
- foo352()
- foo353()
- foo354()
- foo355()
- foo356()
- foo357()
- foo358()
- foo359()
- foo360()
- foo361()
- foo362()
- foo363()
- foo364()
- foo365()
- foo366()
- foo367()
- foo368()
- foo369()
- foo370()
- foo371()
- foo372()
- foo373()
- foo374()
- foo375()
- foo376()
- foo377()
- foo378()
- foo379()
- foo380()
- foo381()
- foo382()
- foo383()
- foo384()
- foo385()
- foo386()
- foo387()
- foo388()
- foo389()
- foo390()
- foo391()
- foo392()
- foo393()
- foo394()
- foo395()
- foo396()
- foo397()
- foo398()
- foo399()
- foo400()
- foo401()
- foo402()
- foo403()
- foo404()
- foo405()
- foo406()
- foo407()
- foo408()
- foo409()
- foo410()
- foo411()
- foo412()
- foo413()
- foo414()
- foo415()
- foo416()
- foo417()
- foo418()
- foo419()
- foo420()
- foo421()
- foo422()
- foo423()
- foo424()
- foo425()
- foo426()
- foo427()
- foo428()
- foo429()
- foo430()
- foo431()
- foo432()
- foo433()
- foo434()
- foo435()
- foo436()
- foo437()
- foo438()
- foo439()
- foo440()
- foo441()
- foo442()
- foo443()
- foo444()
- foo445()
- foo446()
- foo447()
- foo448()
- foo449()
- foo450()
- foo451()
- foo452()
- foo453()
- foo454()
- foo455()
- foo456()
- foo457()
- foo458()
- foo459()
- foo460()
- foo461()
- foo462()
- foo463()
- foo464()
- foo465()
- foo466()
- foo467()
- foo468()
- foo469()
- foo470()
- foo471()
- foo472()
- foo473()
- foo474()
- foo475()
- foo476()
- foo477()
- foo478()
- foo479()
- foo480()
- foo481()
- foo482()
- foo483()
- foo484()
- foo485()
- foo486()
- foo487()
- foo488()
- foo489()
- foo490()
- foo491()
- foo492()
- foo493()
- foo494()
- foo495()
- foo496()
- foo497()
- foo498()
- foo499()
- foo500()
- foo501()
- foo502()
- foo503()
- foo504()
- foo505()
- foo506()
- foo507()
- foo508()
- foo509()
- foo510()
- foo511()
- }
- func $(i I) {
- i.foo511()
- }
- `,
- pos: []string{"TESTB"},
- },
- {
- fn: `
- func $(i I) {
- i.foo001()
- }
- `,
- neg: []string{"TESTB"},
- },
{
fn: `
func $(p int, q *int) bool {
--- /dev/null
+// asmcheck
+
+// Copyright 2018 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.
+
+package codegen
+
+type I interface {
+ foo000()
+ foo001()
+ foo002()
+ foo003()
+ foo004()
+ foo005()
+ foo006()
+ foo007()
+ foo008()
+ foo009()
+ foo010()
+ foo011()
+ foo012()
+ foo013()
+ foo014()
+ foo015()
+ foo016()
+ foo017()
+ foo018()
+ foo019()
+ foo020()
+ foo021()
+ foo022()
+ foo023()
+ foo024()
+ foo025()
+ foo026()
+ foo027()
+ foo028()
+ foo029()
+ foo030()
+ foo031()
+ foo032()
+ foo033()
+ foo034()
+ foo035()
+ foo036()
+ foo037()
+ foo038()
+ foo039()
+ foo040()
+ foo041()
+ foo042()
+ foo043()
+ foo044()
+ foo045()
+ foo046()
+ foo047()
+ foo048()
+ foo049()
+ foo050()
+ foo051()
+ foo052()
+ foo053()
+ foo054()
+ foo055()
+ foo056()
+ foo057()
+ foo058()
+ foo059()
+ foo060()
+ foo061()
+ foo062()
+ foo063()
+ foo064()
+ foo065()
+ foo066()
+ foo067()
+ foo068()
+ foo069()
+ foo070()
+ foo071()
+ foo072()
+ foo073()
+ foo074()
+ foo075()
+ foo076()
+ foo077()
+ foo078()
+ foo079()
+ foo080()
+ foo081()
+ foo082()
+ foo083()
+ foo084()
+ foo085()
+ foo086()
+ foo087()
+ foo088()
+ foo089()
+ foo090()
+ foo091()
+ foo092()
+ foo093()
+ foo094()
+ foo095()
+ foo096()
+ foo097()
+ foo098()
+ foo099()
+ foo100()
+ foo101()
+ foo102()
+ foo103()
+ foo104()
+ foo105()
+ foo106()
+ foo107()
+ foo108()
+ foo109()
+ foo110()
+ foo111()
+ foo112()
+ foo113()
+ foo114()
+ foo115()
+ foo116()
+ foo117()
+ foo118()
+ foo119()
+ foo120()
+ foo121()
+ foo122()
+ foo123()
+ foo124()
+ foo125()
+ foo126()
+ foo127()
+ foo128()
+ foo129()
+ foo130()
+ foo131()
+ foo132()
+ foo133()
+ foo134()
+ foo135()
+ foo136()
+ foo137()
+ foo138()
+ foo139()
+ foo140()
+ foo141()
+ foo142()
+ foo143()
+ foo144()
+ foo145()
+ foo146()
+ foo147()
+ foo148()
+ foo149()
+ foo150()
+ foo151()
+ foo152()
+ foo153()
+ foo154()
+ foo155()
+ foo156()
+ foo157()
+ foo158()
+ foo159()
+ foo160()
+ foo161()
+ foo162()
+ foo163()
+ foo164()
+ foo165()
+ foo166()
+ foo167()
+ foo168()
+ foo169()
+ foo170()
+ foo171()
+ foo172()
+ foo173()
+ foo174()
+ foo175()
+ foo176()
+ foo177()
+ foo178()
+ foo179()
+ foo180()
+ foo181()
+ foo182()
+ foo183()
+ foo184()
+ foo185()
+ foo186()
+ foo187()
+ foo188()
+ foo189()
+ foo190()
+ foo191()
+ foo192()
+ foo193()
+ foo194()
+ foo195()
+ foo196()
+ foo197()
+ foo198()
+ foo199()
+ foo200()
+ foo201()
+ foo202()
+ foo203()
+ foo204()
+ foo205()
+ foo206()
+ foo207()
+ foo208()
+ foo209()
+ foo210()
+ foo211()
+ foo212()
+ foo213()
+ foo214()
+ foo215()
+ foo216()
+ foo217()
+ foo218()
+ foo219()
+ foo220()
+ foo221()
+ foo222()
+ foo223()
+ foo224()
+ foo225()
+ foo226()
+ foo227()
+ foo228()
+ foo229()
+ foo230()
+ foo231()
+ foo232()
+ foo233()
+ foo234()
+ foo235()
+ foo236()
+ foo237()
+ foo238()
+ foo239()
+ foo240()
+ foo241()
+ foo242()
+ foo243()
+ foo244()
+ foo245()
+ foo246()
+ foo247()
+ foo248()
+ foo249()
+ foo250()
+ foo251()
+ foo252()
+ foo253()
+ foo254()
+ foo255()
+ foo256()
+ foo257()
+ foo258()
+ foo259()
+ foo260()
+ foo261()
+ foo262()
+ foo263()
+ foo264()
+ foo265()
+ foo266()
+ foo267()
+ foo268()
+ foo269()
+ foo270()
+ foo271()
+ foo272()
+ foo273()
+ foo274()
+ foo275()
+ foo276()
+ foo277()
+ foo278()
+ foo279()
+ foo280()
+ foo281()
+ foo282()
+ foo283()
+ foo284()
+ foo285()
+ foo286()
+ foo287()
+ foo288()
+ foo289()
+ foo290()
+ foo291()
+ foo292()
+ foo293()
+ foo294()
+ foo295()
+ foo296()
+ foo297()
+ foo298()
+ foo299()
+ foo300()
+ foo301()
+ foo302()
+ foo303()
+ foo304()
+ foo305()
+ foo306()
+ foo307()
+ foo308()
+ foo309()
+ foo310()
+ foo311()
+ foo312()
+ foo313()
+ foo314()
+ foo315()
+ foo316()
+ foo317()
+ foo318()
+ foo319()
+ foo320()
+ foo321()
+ foo322()
+ foo323()
+ foo324()
+ foo325()
+ foo326()
+ foo327()
+ foo328()
+ foo329()
+ foo330()
+ foo331()
+ foo332()
+ foo333()
+ foo334()
+ foo335()
+ foo336()
+ foo337()
+ foo338()
+ foo339()
+ foo340()
+ foo341()
+ foo342()
+ foo343()
+ foo344()
+ foo345()
+ foo346()
+ foo347()
+ foo348()
+ foo349()
+ foo350()
+ foo351()
+ foo352()
+ foo353()
+ foo354()
+ foo355()
+ foo356()
+ foo357()
+ foo358()
+ foo359()
+ foo360()
+ foo361()
+ foo362()
+ foo363()
+ foo364()
+ foo365()
+ foo366()
+ foo367()
+ foo368()
+ foo369()
+ foo370()
+ foo371()
+ foo372()
+ foo373()
+ foo374()
+ foo375()
+ foo376()
+ foo377()
+ foo378()
+ foo379()
+ foo380()
+ foo381()
+ foo382()
+ foo383()
+ foo384()
+ foo385()
+ foo386()
+ foo387()
+ foo388()
+ foo389()
+ foo390()
+ foo391()
+ foo392()
+ foo393()
+ foo394()
+ foo395()
+ foo396()
+ foo397()
+ foo398()
+ foo399()
+ foo400()
+ foo401()
+ foo402()
+ foo403()
+ foo404()
+ foo405()
+ foo406()
+ foo407()
+ foo408()
+ foo409()
+ foo410()
+ foo411()
+ foo412()
+ foo413()
+ foo414()
+ foo415()
+ foo416()
+ foo417()
+ foo418()
+ foo419()
+ foo420()
+ foo421()
+ foo422()
+ foo423()
+ foo424()
+ foo425()
+ foo426()
+ foo427()
+ foo428()
+ foo429()
+ foo430()
+ foo431()
+ foo432()
+ foo433()
+ foo434()
+ foo435()
+ foo436()
+ foo437()
+ foo438()
+ foo439()
+ foo440()
+ foo441()
+ foo442()
+ foo443()
+ foo444()
+ foo445()
+ foo446()
+ foo447()
+ foo448()
+ foo449()
+ foo450()
+ foo451()
+ foo452()
+ foo453()
+ foo454()
+ foo455()
+ foo456()
+ foo457()
+ foo458()
+ foo459()
+ foo460()
+ foo461()
+ foo462()
+ foo463()
+ foo464()
+ foo465()
+ foo466()
+ foo467()
+ foo468()
+ foo469()
+ foo470()
+ foo471()
+ foo472()
+ foo473()
+ foo474()
+ foo475()
+ foo476()
+ foo477()
+ foo478()
+ foo479()
+ foo480()
+ foo481()
+ foo482()
+ foo483()
+ foo484()
+ foo485()
+ foo486()
+ foo487()
+ foo488()
+ foo489()
+ foo490()
+ foo491()
+ foo492()
+ foo493()
+ foo494()
+ foo495()
+ foo496()
+ foo497()
+ foo498()
+ foo499()
+ foo500()
+ foo501()
+ foo502()
+ foo503()
+ foo504()
+ foo505()
+ foo506()
+ foo507()
+ foo508()
+ foo509()
+ foo510()
+ foo511()
+}
+
+// Nil checks before calling interface methods.
+// We need it only when the offset is large.
+
+func callMethodSmallOffset(i I) {
+ // amd64:-"TESTB"
+ i.foo001()
+}
+
+func callMethodLargeOffset(i I) {
+ // amd64:"TESTB"
+ i.foo511()
+}