about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2019-11-10 11:15:34 +0100
committerOliver Scherer <github35764891676564198441@oli-obk.de>2019-11-10 11:19:55 +0100
commit39fb82082042040863a958b1e246ecb5ef5cefdf (patch)
tree8151ccb63cb57b0f6468e99308be9b77b79b0315
parent5a5027519a4a634baa6cde5b698b907d27fbe6b3 (diff)
downloadrust-39fb82082042040863a958b1e246ecb5ef5cefdf.tar.gz
rust-39fb82082042040863a958b1e246ecb5ef5cefdf.zip
Undo an assert causing an ICE until we fix the problem properly
-rw-r--r--src/librustc_target/abi/mod.rs6
-rw-r--r--src/test/ui/issues/issue-65462.rs15
2 files changed, 16 insertions, 5 deletions
diff --git a/src/librustc_target/abi/mod.rs b/src/librustc_target/abi/mod.rs
index a19bb6807f1..2d7e05037ba 100644
--- a/src/librustc_target/abi/mod.rs
+++ b/src/librustc_target/abi/mod.rs
@@ -694,11 +694,7 @@ impl FieldPlacement {
 
     pub fn offset(&self, i: usize) -> Size {
         match *self {
-            FieldPlacement::Union(count) => {
-                assert!(i < count,
-                        "Tried to access field {} of union with {} fields", i, count);
-                Size::ZERO
-            },
+            FieldPlacement::Union(_) => Size::ZERO,
             FieldPlacement::Array { stride, count } => {
                 let i = i as u64;
                 assert!(i < count);
diff --git a/src/test/ui/issues/issue-65462.rs b/src/test/ui/issues/issue-65462.rs
new file mode 100644
index 00000000000..8c39ea531d2
--- /dev/null
+++ b/src/test/ui/issues/issue-65462.rs
@@ -0,0 +1,15 @@
+// build-pass
+
+enum Empty {}
+enum Enum {
+    Empty( Empty )
+}
+
+fn foobar() -> Option< Enum > {
+    let value: Option< Empty > = None;
+    Some( Enum::Empty( value? ) )
+}
+
+fn main() {
+    foobar();
+}