about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-12-23 00:07:34 +0800
committerkennytm <kennytm@gmail.com>2018-12-23 02:11:47 +0800
commita92e21c21542dbc6fe0511b461008471d92b2e85 (patch)
tree0ae2d8650ea5442874519ed4af563bb9579c6b16 /src/test
parent2d6927e9ee8238066bf78b0b42c755ed8aff5d4b (diff)
parente7e17f9d1b008a1f06ad8b4ef06c443b4b879bc4 (diff)
Rollup merge of #56909 - dlrobertson:fix_56762, r=estebank
static eval: Do not ICE on layout size overflow

Layout size overflow and typeck eval errors are reported. Trigger a bug
only when the eval error is strictly labeled as TooGeneric.

Fixes: #56762
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/issues/issue-56762.rs18
-rw-r--r--src/test/ui/issues/issue-56762.stderr4
2 files changed, 22 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-56762.rs b/src/test/ui/issues/issue-56762.rs
new file mode 100644
index 00000000000..97b66b2c7c9
--- /dev/null
+++ b/src/test/ui/issues/issue-56762.rs
@@ -0,0 +1,18 @@
+// only-x86_64
+const HUGE_SIZE: usize = !0usize / 8;
+
+
+pub struct TooBigArray {
+    arr: [u8; HUGE_SIZE],
+}
+
+impl TooBigArray {
+    pub const fn new() -> Self {
+        TooBigArray { arr: [0x00; HUGE_SIZE], }
+    }
+}
+
+static MY_TOO_BIG_ARRAY_1: TooBigArray = TooBigArray::new();
+static MY_TOO_BIG_ARRAY_2: [u8; HUGE_SIZE] = [0x00; HUGE_SIZE];
+
+fn main() { }
diff --git a/src/test/ui/issues/issue-56762.stderr b/src/test/ui/issues/issue-56762.stderr
new file mode 100644
index 00000000000..83d5dc62e61
--- /dev/null
+++ b/src/test/ui/issues/issue-56762.stderr
@@ -0,0 +1,4 @@
+error: the type `[u8; 2305843009213693951]` is too big for the current architecture
+
+error: aborting due to previous error
+