[PATCH] Change a reachable unreachable to a fatal error.

Filipe Cabecinhas filcab+llvm.phabricator at gmail.com
Tue May 19 11:21:59 PDT 2015


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9729

Files:
  llvm/trunk/include/llvm/Support/StreamingMemoryObject.h
  llvm/trunk/test/Bitcode/Inputs/invalid-fixme-streaming-blob.bc
  llvm/trunk/test/Bitcode/invalid.test

Index: llvm/trunk/test/Bitcode/invalid.test
===================================================================
--- llvm/trunk/test/Bitcode/invalid.test
+++ llvm/trunk/test/Bitcode/invalid.test
@@ -157,3 +157,8 @@
 RUN:   FileCheck --check-prefix=INVALID-ARGUMENT-TYPE %s
 
 INVALID-ARGUMENT-TYPE: Invalid function argument type
+
+RUN: not llvm-dis -disable-output %p/Inputs/invalid-fixme-streaming-blob.bc 2>&1 | \
+RUN:   FileCheck --check-prefix=STREAMING-BLOB %s
+
+STREAMING-BLOB: getPointer in streaming memory objects not allowed
Index: llvm/trunk/include/llvm/Support/StreamingMemoryObject.h
===================================================================
--- llvm/trunk/include/llvm/Support/StreamingMemoryObject.h
+++ llvm/trunk/include/llvm/Support/StreamingMemoryObject.h
@@ -29,11 +29,12 @@
   uint64_t readBytes(uint8_t *Buf, uint64_t Size,
                      uint64_t Address) const override;
   const uint8_t *getPointer(uint64_t address, uint64_t size) const override {
-    // This could be fixed by ensuring the bytes are fetched and making a copy,
-    // requiring that the bitcode size be known, or otherwise ensuring that
-    // the memory doesn't go away/get reallocated, but it's
-    // not currently necessary. Users that need the pointer don't stream.
-    llvm_unreachable("getPointer in streaming memory objects not allowed");
+    // FIXME: This could be fixed by ensuring the bytes are fetched and
+    // making a copy, requiring that the bitcode size be known, or
+    // otherwise ensuring that the memory doesn't go away/get reallocated,
+    // but it's not currently necessary. Users that need the pointer (any
+    // that need Blobs) don't stream.
+    report_fatal_error("getPointer in streaming memory objects not allowed");
     return nullptr;
   }
   bool isValidAddress(uint64_t address) const override;

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9729.26077.patch
Type: text/x-patch
Size: 1859 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150519/b6ae2a95/attachment.bin>


More information about the llvm-commits mailing list