]> Cypherpunks repositories - gostls13.git/commitdiff
test: port a nil-check interface test from asm_test
authorGiovanni Bajo <rasky@develer.com>
Sat, 3 Mar 2018 18:16:34 +0000 (19:16 +0100)
committerGiovanni Bajo <rasky@develer.com>
Sat, 3 Mar 2018 20:20:54 +0000 (20:20 +0000)
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>
src/cmd/compile/internal/gc/asm_test.go
test/codegen/issue22703.go [new file with mode: 0644]

index 8ed0ca7517fec5d95ee8a1147b6674dd58775c1c..0919eab3070b28ef8b02422572d123ebaf89cbca 100644 (file)
@@ -1293,537 +1293,6 @@ var linuxAMD64Tests = []*asmTest{
                `,
                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 {
diff --git a/test/codegen/issue22703.go b/test/codegen/issue22703.go
new file mode 100644 (file)
index 0000000..0201de6
--- /dev/null
@@ -0,0 +1,535 @@
+// 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()
+}