mirror of
https://github.com/golang/go
synced 2024-09-04 23:44:16 +00:00
test: permit "exponent too large" error
The language spec only requires a signed binary exponent of 16 bits for floating point constants. Permit a "exponent too large" error for larger exponents. Don't run test 11326b with gccgo, as it requires successful compilation of floating point constants with exponents that don't fit in 16 bits. Change-Id: I98688160c76864aba525a151a14aaaf86bc36a6f Reviewed-on: https://go-review.googlesource.com/c/go/+/279252 Trust: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
139cd0e12f
commit
626cc7c02d
|
@ -18,11 +18,11 @@ func main() {
|
|||
|
||||
// Any implementation must be able to handle these constants at
|
||||
// compile time (even though they cannot be assigned to a float64).
|
||||
var _ = 1e646456992 // ERROR "1e\+646456992 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e64645699 // ERROR "1e\+64645699 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e6464569 // ERROR "1e\+6464569 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e646456 // ERROR "1e\+646456 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e64645 // ERROR "1e\+64645 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e646456992 // ERROR "1e\+646456992 overflows float64|floating-point constant overflow|exponent too large"
|
||||
var _ = 1e64645699 // ERROR "1e\+64645699 overflows float64|floating-point constant overflow|exponent too large"
|
||||
var _ = 1e6464569 // ERROR "1e\+6464569 overflows float64|floating-point constant overflow|exponent too large"
|
||||
var _ = 1e646456 // ERROR "1e\+646456 overflows float64|floating-point constant overflow|exponent too large"
|
||||
var _ = 1e64645 // ERROR "1e\+64645 overflows float64|floating-point constant overflow|exponent too large"
|
||||
var _ = 1e6464 // ERROR "1e\+6464 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e646 // ERROR "1e\+646 overflows float64|floating-point constant overflow"
|
||||
var _ = 1e309 // ERROR "1e\+309 overflows float64|floating-point constant overflow"
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
// run
|
||||
|
||||
// Does not work with gccgo, which uses a smaller (but still permitted)
|
||||
// exponent size.
|
||||
// +build !gccgo
|
||||
|
||||
// Copyright 2015 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.
|
||||
|
|
|
@ -9,17 +9,17 @@
|
|||
package main
|
||||
|
||||
func main() {
|
||||
const _ int64 = 1e646456992 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ int32 = 1e64645699 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ int16 = 1e6464569 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ int8 = 1e646456 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ int = 1e64645 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ int64 = 1e646456992 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ int32 = 1e64645699 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ int16 = 1e6464569 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ int8 = 1e646456 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ int = 1e64645 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
|
||||
const _ uint64 = 1e646456992 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ uint32 = 1e64645699 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ uint16 = 1e6464569 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ uint8 = 1e646456 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ uint = 1e64645 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ uint64 = 1e646456992 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ uint32 = 1e64645699 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ uint16 = 1e6464569 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ uint8 = 1e646456 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
const _ uint = 1e64645 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
|
||||
const _ rune = 1e64645 // ERROR "integer too large|floating-point constant truncated to integer"
|
||||
const _ rune = 1e64645 // ERROR "integer too large|floating-point constant truncated to integer|exponent too large"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue