diff options
| author | Alberto Donizetti <alb.donizetti@gmail.com> | 2017-03-07 11:54:29 +0100 |
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2017-04-12 17:29:28 +0000 |
| commit | 10a200e56000c03fc820d6d43853b43b9e1c8a8c (patch) | |
| tree | c18870e74acca62d1782dd480aee3c03e9b6734c /src/database/sql | |
| parent | 49f4b5a4f5257e17cc62ad5d7862fdb4a5cfa7a0 (diff) | |
| download | go-10a200e56000c03fc820d6d43853b43b9e1c8a8c.tar.xz | |
cmd/compile: diagnose constant division by complex zero
When casting an ideal to complex{64,128}, for example during the
evaluation of
var a = complex64(0) / 1e-50
we want the compiler to report a division-by-zero error if a divisor
would be zero after the cast.
We already do this for floats; for example
var b = float32(0) / 1e-50
generates a 'division by zero' error at compile time (because
float32(1e-50) is zero, and the cast is done before performing the
division).
There's no such check in the path for complex{64,128} expressions, and
no cast is performed before the division in the evaluation of
var a = complex64(0) / 1e-50
which compiles just fine.
This patch changes the convlit1 function so that complex ideals
components (real and imag) are correctly truncated to float{32,64}
when doing an ideal -> complex{64, 128} cast.
Fixes #11674
Change-Id: Ic5f8ee3c8cfe4c3bb0621481792c96511723d151
Reviewed-on: https://go-review.googlesource.com/37891
Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'src/database/sql')
0 files changed, 0 insertions, 0 deletions
