Possible regression in X86 Disassembler

Hi,

I have a program that uses LLVM as a disassembler.
When using LLVM 3.5 I could pass "getInstruction" a byte pointer and
and address. The address was the offset within the bytes to start
disassembling at.

With LLVM 3.5, this changed. the use of a Region was used.
But it seems to be incorrectly used. with address being used to set
the base of the region.
This means that when calling the "getInstruction" method, I now have
to call it with the byte pointer already having had the offset added,
and instead set the address offset to zero.

Please see below where I think the bug is, and how to fix it.

Kind Regards

James

diff --git a/lib/Target/X86/Disassembler/X86Disassembler.cpp
b/lib/Target/X86/Disassembler/X86Disassembler.cpp
index 1c56182..4a9774e 100644
--- a/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ b/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -147,7 +147,7 @@ MCDisassembler::DecodeStatus
X86GenericDisassembler::getInstruction(
   if (&VStream == &nulls())
     LoggerFn = nullptr; // Disable logging completely if it's going to nulls().

- Region R(Bytes, Address);
+ Region R(Bytes, 0);

   int Ret = decodeInstruction(&InternalInstr, regionReader, (const void *)&R,
                               LoggerFn, (void *)&VStream,

Hi,

I have a program that uses LLVM as a disassembler.
When using LLVM 3.5 I could pass "getInstruction" a byte pointer and
and address. The address was the offset within the bytes to start
disassembling at.

With LLVM 3.5, this changed. the use of a Region was used.

This should be LLVM 3.6. I.e. the bug was introduced in LLVM 3.6,
whereas it was fine in LLVM 3.5