1
0
mirror of https://github.com/golang/go synced 2024-09-29 19:24:33 -06:00
go/test/fixedbugs
Matthew Dempsky 34db5f0c4d cmd/compile: fix evaluation order for OASOP
Currently, we handle "x op= y" by rewriting as "x = x op y", while
ensuring that any calls or receive operations in 'x' are only
evaluated once. Notably, pointer indirection, indexing operations,
etc. are left alone as it's typically safe to re-evaluate those.

However, those operations were interleaved with evaluating 'y', which
could include function calls that might cause re-evaluation to yield
different memory addresses.

As a fix, simply ensure that we order side-effecting operations in 'y'
before either evaluation of 'x'.

Fixes #21687.

Change-Id: Ib14e77760fda9c828e394e8e362dc9e5319a84b2
Reviewed-on: https://go-review.googlesource.com/60091
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
2017-09-05 18:10:17 +00:00
..
bug083.dir
bug088.dir
bug106.dir
bug133.dir
bug160.dir
bug191.dir
bug222.dir
bug248.dir
bug282.dir
bug302.dir
bug306.dir
bug313.dir
bug322.dir
bug324.dir
bug335.dir
bug345.dir
bug367.dir
bug369.dir
bug377.dir
bug382.dir
bug392.dir
bug396.dir
bug404.dir
bug407.dir
bug414.dir
bug415.dir
bug424.dir
bug437.dir
bug448.dir
bug460.dir
bug465.dir
bug466.dir
bug467.dir
bug468.dir
bug472.dir
bug478.dir
bug479.dir
bug480.dir
bug488.dir
bug492.dir
gcc67968.dir
issue3552.dir
issue4252.dir
issue4326.dir
issue4370.dir
issue4510.dir
issue4590.dir
issue4879.dir
issue4932.dir
issue4964.dir
issue5105.dir
issue5125.dir
issue5259.dir
issue5260.dir
issue5291.dir
issue5470.dir
issue5614.dir
issue5755.dir
issue5910.dir
issue5957.dir
issue6295.dir
issue6513.dir
issue6789.dir
issue7023.dir
issue7648.dir
issue7995b.dir
issue8060.dir
issue8280.dir
issue9355.dir
issue9537.dir
issue9608.dir
issue10066.dir
issue10219.dir
issue10700.dir
issue11053.dir
issue12677.dir
issue13777.dir
issue14164.dir
issue14331.dir
issue15071.dir
issue15470.dir
issue15514.dir
issue15548.dir
issue15572.dir
issue15609.dir
issue15646.dir
issue15838.dir
issue15920.dir
issue16133.dir
issue16317.dir
issue16616.dir
issue18419.dir cmd/compile: don't use ."" as a pkg prefix 2017-06-09 16:13:52 +00:00
issue18895.dir cmd/compile: fix exporting of function bodies 2017-06-15 04:17:30 +00:00
issue19028.dir cmd/compile: fix detection of calls to reflect.Method 2017-06-14 21:57:56 +00:00
issue19467.dir
issue19507.dir runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
issue19548.dir
issue19699.dir
issue19764.dir
issue20682.dir cmd/compile: add regress test for #20682 2017-06-15 22:01:35 +00:00
issue21120.dir cmd/compile: consider exported flag in namedata 2017-07-24 18:05:00 +00:00
bug000.go
bug002.go
bug003.go
bug004.go
bug005.go
bug006.go
bug007.go
bug008.go
bug009.go
bug010.go
bug011.go
bug012.go
bug013.go
bug014.go
bug015.go
bug016.go
bug017.go
bug020.go
bug021.go
bug022.go
bug023.go
bug024.go
bug026.go
bug027.go
bug028.go
bug030.go
bug031.go
bug035.go
bug037.go
bug039.go
bug040.go
bug045.go
bug046.go
bug047.go
bug048.go
bug049.go
bug050.go
bug051.go
bug052.go
bug053.go
bug054.go
bug055.go
bug056.go
bug057.go
bug058.go
bug059.go
bug060.go
bug061.go
bug062.go
bug063.go
bug064.go
bug065.go
bug066.go
bug067.go
bug068.go
bug069.go
bug070.go
bug071.go
bug072.go
bug073.go
bug074.go
bug075.go
bug076.go
bug077.go
bug078.go
bug080.go
bug081.go
bug082.go
bug083.go
bug084.go
bug085.go
bug086.go
bug087.go
bug088.go
bug089.go
bug090.go
bug091.go
bug092.go
bug093.go
bug094.go
bug096.go
bug097.go
bug098.go
bug099.go
bug101.go
bug102.go
bug103.go
bug104.go
bug106.go
bug107.go
bug108.go
bug109.go
bug110.go
bug111.go
bug112.go
bug113.go
bug114.go
bug115.go
bug116.go
bug117.go
bug118.go
bug119.go
bug120.go
bug121.go
bug122.go
bug123.go
bug126.go
bug127.go
bug128.go
bug129.go
bug130.go
bug131.go
bug132.go
bug133.go
bug135.go
bug136.go
bug137.go
bug139.go
bug140.go
bug141.go
bug142.go
bug143.go
bug144.go
bug145.go
bug146.go
bug147.go
bug148.go
bug149.go
bug150.go
bug151.go
bug152.go
bug154.go
bug155.go
bug156.go
bug157.go
bug158.go
bug159.go
bug160.go
bug161.go
bug163.go
bug164.go
bug165.go
bug167.go
bug168.go
bug169.go
bug170.go
bug171.go
bug172.go
bug173.go
bug174.go
bug175.go
bug176.go
bug177.go
bug178.go
bug179.go
bug180.go
bug181.go
bug182.go
bug183.go
bug184.go
bug185.go
bug186.go
bug187.go
bug188.go
bug189.go
bug190.go
bug191.go
bug192.go
bug193.go
bug194.go
bug195.go
bug196.go
bug197.go
bug198.go
bug199.go
bug200.go
bug201.go
bug202.go
bug203.go
bug204.go
bug205.go
bug206.go
bug206.out
bug207.go
bug208.go
bug209.go
bug211.go
bug212.go
bug213.go
bug214.go
bug215.go
bug216.go
bug217.go
bug218.go
bug219.go
bug221.go
bug222.go
bug223.go
bug224.go
bug225.go
bug227.go
bug228.go
bug229.go
bug230.go
bug231.go
bug232.go
bug233.go
bug234.go
bug235.go
bug236.go
bug237.go
bug238.go
bug239.go
bug240.go
bug241.go
bug242.go
bug243.go
bug244.go
bug245.go
bug246.go
bug247.go
bug248.go
bug249.go
bug250.go
bug251.go
bug252.go
bug253.go
bug254.go
bug255.go
bug256.go
bug257.go
bug258.go
bug259.go
bug260.go
bug261.go
bug262.go
bug263.go
bug264.go
bug265.go
bug266.go
bug267.go
bug269.go
bug271.go
bug272.go
bug273.go
bug274.go
bug275.go
bug276.go
bug277.go
bug278.go
bug279.go
bug280.go
bug281.go
bug282.go
bug283.go
bug284.go
bug285.go
bug286.go
bug287.go
bug288.go
bug289.go
bug290.go
bug291.go
bug292.go
bug293.go
bug294.go
bug295.go
bug296.go
bug297.go
bug298.go
bug299.go
bug300.go
bug301.go
bug302.go
bug303.go
bug304.go
bug305.go
bug306.go
bug307.go
bug308.go
bug309.go
bug311.go
bug312.go
bug313.go
bug314.go
bug315.go
bug316.go
bug317.go
bug318.go
bug319.go
bug320.go
bug321.go
bug322.go
bug323.go
bug324.go
bug325.go
bug326.go
bug327.go
bug328.go
bug328.out
bug329.go
bug330.go
bug331.go
bug332.go
bug333.go
bug334.go
bug335.go
bug336.go
bug337.go
bug338.go
bug339.go
bug340.go
bug341.go
bug342.go
bug343.go
bug344.go
bug345.go
bug346.go
bug347.go
bug348.go
bug349.go
bug350.go
bug351.go
bug352.go
bug353.go
bug354.go
bug355.go
bug356.go
bug357.go
bug358.go
bug361.go
bug362.go
bug363.go
bug364.go
bug365.go
bug366.go
bug367.go
bug368.go
bug369.go
bug370.go
bug371.go
bug372.go
bug373.go
bug374.go
bug375.go
bug376.go
bug377.go
bug378.go
bug379.go
bug380.go
bug381.go
bug382.go
bug383.go
bug384.go
bug385_32.go
bug385_64.go
bug386.go
bug387.go
bug388.go
bug389.go
bug390.go
bug391.go
bug392.go
bug393.go
bug394.go
bug396.go
bug397.go
bug398.go test: restore fixedbugs/bug398.go to original version 2017-05-18 21:45:03 +00:00
bug399.go
bug401.go
bug402.go
bug403.go
bug404.go
bug405.go
bug406.go
bug407.go
bug409.go
bug409.out
bug410.go
bug411.go
bug412.go
bug413.go
bug414.go
bug415.go
bug416.go
bug417.go
bug418.go
bug419.go
bug420.go
bug421.go
bug422.go
bug423.go
bug424.go
bug425.go
bug426.go
bug427.go
bug428.go
bug429_run.go
bug429.go
bug430.go
bug431.go
bug432.go
bug433.go
bug434.go
bug435.go
bug436.go
bug437.go
bug438.go
bug439.go
bug440_32.go
bug440_64.go
bug441.go
bug442.go
bug443.go
bug444.go
bug445.go
bug446.go
bug447.go
bug448.go
bug449.go
bug450.go
bug451.go
bug452.go
bug453.go
bug454.go
bug455.go
bug456.go
bug457.go
bug458.go
bug459.go
bug460.go
bug461.go
bug462.go
bug463.go
bug464.go
bug465.go
bug466.go
bug467.go
bug468.go
bug470.go
bug471.go
bug472.go
bug473.go
bug474.go
bug475.go
bug476.go
bug477.go
bug478.go
bug479.go
bug480.go
bug481.go
bug482.go
bug483.go
bug484.go
bug485.go
bug486.go
bug487.go
bug488.go
bug489.go
bug490.go
bug491.go
bug492.go
bug493.go
bug494.go
bug495.go
bug496.go
bug497.go
bug498.go
bug499.go
bug500.go
bug501.go
bug502.go test: add test that caused gccgo undefined symbol error 2017-06-08 03:58:11 +00:00
bug1515.go
bug13343.go
bug19403.go
gcc61204.go
gcc61244.go
gcc61246.go
gcc61248.go
gcc61253.go
gcc61254.go
gcc61255.go
gcc61258.go
gcc61264.go
gcc61265.go
gcc61273.go
gcc65755.go
gcc67968.go
gcc78763.go
gcc80226.go
issue887.go
issue1304.go
issue2615.go
issue3552.go
issue3705.go
issue3783.go
issue3925.go
issue4066.go
issue4085a.go
issue4085b.go
issue4097.go
issue4099.go
issue4162.go
issue4167.go
issue4215.go
issue4232.go
issue4251.go
issue4252.go
issue4264.go
issue4283.go
issue4313.go
issue4316.go
issue4323.go
issue4326.go
issue4348.go
issue4353.go
issue4359.go
issue4365.go
issue4370.go
issue4388.go
issue4396a.go
issue4396b.go
issue4399.go
issue4405.go
issue4429.go
issue4448.go
issue4452.go
issue4458.go
issue4463.go
issue4468.go
issue4470.go
issue4495.go
issue4510.go
issue4517a.go
issue4517b.go
issue4517c.go
issue4517d.go
issue4518.go
issue4529.go
issue4545.go
issue4562.go
issue4585.go
issue4590.go
issue4610.go
issue4614.go
issue4618.go
issue4620.go
issue4654.go
issue4663.go
issue4667.go
issue4734.go
issue4748.go
issue4752.go
issue4776.go
issue4785.go
issue4813.go
issue4847.go
issue4879.go
issue4909a.go
issue4909b.go
issue4932.go
issue4964.go
issue5002.go
issue5056.go
issue5089.go
issue5105.go
issue5125.go
issue5162.go
issue5172.go
issue5231.go
issue5244.go
issue5259.go
issue5260.go
issue5291.go
issue5358.go
issue5373.go
issue5470.go
issue5493.go
issue5515.go
issue5581.go
issue5607.go
issue5609.go
issue5614.go
issue5698.go
issue5704.go
issue5753.go
issue5755.go
issue5793.go
issue5809.go
issue5820.go
issue5841.go
issue5856.go
issue5910.go
issue5957.go
issue5963.go
issue6004.go
issue6036.go
issue6055.go
issue6131.go
issue6140.go
issue6247.go
issue6269.go
issue6295.go
issue6298.go
issue6399.go
issue6402.go
issue6403.go
issue6405.go
issue6406.go
issue6500.go
issue6513.go
issue6572.go
issue6671.go
issue6703a.go
issue6703b.go
issue6703c.go
issue6703d.go
issue6703e.go
issue6703f.go
issue6703g.go
issue6703h.go
issue6703i.go
issue6703j.go
issue6703k.go
issue6703l.go
issue6703m.go
issue6703n.go
issue6703o.go
issue6703p.go
issue6703q.go
issue6703r.go
issue6703s.go
issue6703t.go
issue6703u.go
issue6703v.go
issue6703w.go
issue6703x.go
issue6703y.go
issue6703z.go
issue6750.go
issue6772.go
issue6789.go
issue6847.go
issue6866.go
issue6889.go
issue6899.go
issue6899.out
issue6902.go
issue6964.go
issue7023.go
issue7044.go
issue7050.go
issue7083.go
issue7129.go
issue7150.go
issue7153.go
issue7214.go
issue7223.go
issue7272.go
issue7310.go
issue7316.go
issue7346.go
issue7366.go
issue7405.go
issue7419.go
issue7525.go
issue7525b.go
issue7525c.go
issue7538a.go
issue7538b.go
issue7547.go
issue7550.go
issue7590.go
issue7648.go
issue7675.go
issue7690.go
issue7740.go
issue7742.go
issue7746.go
issue7760.go
issue7794.go
issue7863.go
issue7867.go
issue7884.go
issue7944.go
issue7995.go
issue7995b.go
issue7996.go
issue7997.go
issue7998.go
issue8004.go
issue8011.go
issue8017.go
issue8028.go
issue8036.go
issue8039.go
issue8042.go
issue8047.go
issue8047b.go
issue8048.go
issue8060.go
issue8073.go
issue8074.go
issue8076.go
issue8079.go
issue8132.go
issue8139.go
issue8154.go
issue8155.go
issue8158.go
issue8183.go
issue8280.go
issue8311.go
issue8325.go
issue8336.go
issue8347.go
issue8385.go
issue8438.go
issue8440.go
issue8475.go
issue8501.go
issue8507.go
issue8612.go
issue8613.go
issue8620.go
issue8745.go
issue8761.go
issue8836.go
issue8947.go
issue8961.go
issue9006.go
issue9017.go
issue9036.go
issue9076.go
issue9083.go
issue9110.go
issue9321.go
issue9355.go
issue9370.go
issue9432.go
issue9521.go
issue9537.go
issue9604.go
issue9604b.go
issue9608.go
issue9634.go
issue9691.go
issue9731.go
issue9738.go
issue9862_run.go
issue9862.go
issue10047.go
issue10066.go
issue10135.go
issue10219.go
issue10253.go
issue10284.go
issue10320.go
issue10332.go
issue10353.go
issue10407.go
issue10441.go
issue10486.go
issue10607.go
issue10607a.go
issue10654.go
issue10700.go
issue10925.go
issue10958.go
issue10975.go
issue10977.go
issue11053.go
issue11053.out
issue11256.go
issue11286.go
issue11326.go
issue11326b.go
issue11354.go
issue11359.go
issue11361.go
issue11362.go
issue11369.go
issue11370.go
issue11371.go
issue11590.go
issue11610.go
issue11614.go
issue11656.go
issue11674.go
issue11699.go
issue11737.go
issue11750.go
issue11771.go
issue11790.go
issue11945.go cmd/compile: fix real/imag for untyped constant arguments 2017-06-08 17:58:26 +00:00
issue11987.go
issue12006.go
issue12108.go
issue12133.go
issue12226.go
issue12347.go
issue12411.go
issue12413.go
issue12525.go
issue12536.go
issue12577.go
issue12588.go
issue12677.go
issue12686.go
issue12944.go
issue13160.go
issue13162.go
issue13169.go
issue13171.go
issue13248.go
issue13261.go
issue13262.go
issue13263.go
issue13266.go
issue13268.go
issue13273.go
issue13274.go
issue13319.go
issue13337.go
issue13365.go
issue13415.go
issue13471.go
issue13480.go
issue13485.go
issue13539.go
issue13559.go
issue13587.go
issue13684.go
issue13777.go
issue13779.go
issue13799.go
issue13821.go
issue13821b.go
issue14006.go
issue14010.go
issue14136.go
issue14164.go
issue14331.go
issue14405.go
issue14520.go
issue14553.go
issue14591.go
issue14636.go
issue14646.go
issue14651.go
issue14652.go
issue14725.go
issue14729.go
issue14988.go
issue14999.go
issue15002.go
issue15013.go
issue15039.go
issue15042.go
issue15055.go
issue15084.go
issue15091.go
issue15141.go
issue15175.go
issue15252.go
issue15277.go
issue15281.go
issue15303.go
issue15311.go
issue15329.go
issue15439.go
issue15470.go
issue15514.go
issue15528.go
issue15548.go
issue15550.go
issue15572.go
issue15585.go
issue15602.go
issue15604.go
issue15611.go
issue15646.go
issue15722.go
issue15733.go
issue15747.go
issue15747b.go
issue15838.go
issue15895.go
issue15898.go
issue15902.go
issue15920.go
issue15926.go
issue15961.go
issue15975.go
issue15988.go
issue16008.go
issue16016.go
issue16037_run.go
issue16095.go
issue16130.go
issue16133.go
issue16193.go
issue16249.go
issue16306.go
issue16317.go
issue16331.go
issue16369.go
issue16428.go
issue16439.go
issue16515.go
issue16616.go
issue16733.go
issue16741.go
issue16760.go
issue16804.go
issue16870.go
issue16948.go
issue16949.go
issue16985.go
issue17005.go
issue17038.go
issue17039.go
issue17111.go
issue17194.go
issue17270.go
issue17318.go
issue17328.go
issue17381.go
issue17449.go
issue17551.go
issue17588.go
issue17596.go
issue17631.go
issue17640.go
issue17645.go
issue17710.go
issue17752.go
issue17918.go
issue18089.go
issue18092.go
issue18149.go
issue18231.go
issue18331.go cmd/compile: reject unknown //go: comments in std library 2017-06-06 22:28:17 +00:00
issue18392.go
issue18393.go
issue18410.go
issue18419.go cmd/compile: don't use ."" as a pkg prefix 2017-06-09 16:13:52 +00:00
issue18459.go
issue18595.go
issue18636.go test: add test for issue 18636 2017-05-18 21:33:05 +00:00
issue18640.go
issue18655.go
issue18661.go
issue18725.go
issue18747.go
issue18808.go
issue18882.go
issue18895.go cmd/compile: fix exporting of function bodies 2017-06-15 04:17:30 +00:00
issue18902.go
issue18902b.go
issue18906.go
issue18915.go
issue18994.go
issue19012.go
issue19028.go cmd/compile: fix detection of calls to reflect.Method 2017-06-14 21:57:56 +00:00
issue19040.go
issue19056.go
issue19078.go
issue19084.go
issue19137.go
issue19168.go
issue19182.go
issue19201.go
issue19217.go
issue19246.go
issue19275.go
issue19323.go
issue19359.go
issue19467.go
issue19482.go
issue19507.go runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
issue19515.go
issue19548.go
issue19555.go
issue19610.go
issue19632.go
issue19658.go
issue19667.go
issue19671.go
issue19678.go
issue19679.go
issue19696.go
issue19699.go
issue19699b.go
issue19705.go
issue19710.go test: add test of deferred delete 2017-05-15 19:15:01 +00:00
issue19743.go
issue19764.go
issue19783.go
issue19799.go cmd/compile: retain source positions of arguments to inlined calls 2017-06-02 13:41:01 +00:00
issue19880.go
issue19911.go
issue19947.go
issue19977.go
issue20029.go
issue20097.go
issue20145.go
issue20162.go
issue20174.go
issue20185.go
issue20227.go cmd/compile: don't panic in complex division 2017-05-18 16:39:05 +00:00
issue20232.go
issue20233.go
issue20245.go
issue20250.go
issue20298.go
issue20333.go
issue20335.go
issue20415.go cmd/compile: report correct position in redeclaration errors 2017-05-22 19:20:11 +00:00
issue20529.go cmd/compile: don't generate liveness maps when the stack is too large 2017-05-30 22:39:29 +00:00
issue20530.go cmd/compile: fix subword store/load elision for MIPS 2017-05-31 14:44:02 +00:00
issue20602.go cmd/compile: don't implicitly dereference pointer to arrays for real/imag 2017-06-07 21:22:58 +00:00
issue20682.go cmd/compile: add regress test for #20682 2017-06-15 22:01:35 +00:00
issue20749.go cmd/compile: fix array slice expression bounds check 2017-06-22 23:31:45 +00:00
issue20789.go test/fixedbugs: Close opening parenthesis in comment in issue20789.go 2017-06-27 00:01:20 +00:00
issue20811.go cmd/compile: fix slice-in-bound check on amd64p32 2017-06-28 16:20:53 +00:00
issue20812.go cmd/compile: avoid duplicate cast error 2017-08-22 13:44:35 +00:00
issue20813.go cmd/compile: suppress errors after "cannot assign to X" 2017-06-27 20:29:33 +00:00
issue21048.go cmd/compile: fix unaligned loads/stores to global variables on s390x 2017-07-19 14:22:48 +00:00
issue21120.go cmd/compile: consider exported flag in namedata 2017-07-24 18:05:00 +00:00
issue21253.go test: add test that caused gccgo compiler crash 2017-08-17 18:09:52 +00:00
issue21655.go cmd/compile: avoid generating large offsets 2017-08-28 22:02:59 +00:00
issue21687.go cmd/compile: fix evaluation order for OASOP 2017-09-05 18:10:17 +00:00