Merge pull request #10833 from gottesmm/enum_valueownershipkind_erased_return_value

diff --git a/lib/SIL/SILOwnershipVerifier.cpp b/lib/SIL/SILOwnershipVerifier.cpp
index d39b492..81522bf 100644
--- a/lib/SIL/SILOwnershipVerifier.cpp
+++ b/lib/SIL/SILOwnershipVerifier.cpp
@@ -862,6 +862,10 @@
     Base = MergedValue.getValue();
   }
 
+  if (auto *E = getType().getEnumOrBoundGenericEnum()) {
+    return visitNonTrivialEnum(E, Base);
+  }
+
   return {compatibleWithOwnership(Base), true};
 }
 
diff --git a/test/SIL/ownership-verifier/use_verifier.sil b/test/SIL/ownership-verifier/use_verifier.sil
index bbd7178..7eee9bc 100644
--- a/test/SIL/ownership-verifier/use_verifier.sil
+++ b/test/SIL/ownership-verifier/use_verifier.sil
@@ -351,6 +351,12 @@
   return %9999 : $()
 }
 
+sil @trivial_enum_return_value : $@convention(thin) () -> @owned Optional<Builtin.NativeObject> {
+bb0:
+  %0 = enum $Optional<Builtin.NativeObject>, #Optional.none!enumelt
+  return %0 : $Optional<Builtin.NativeObject>
+}
+
 //////////////////////
 // Terminator Tests //
 //////////////////////