[lldb-dev] Question about IRForTarget
blaikie at google.com
Mon Mar 16 10:43:05 PDT 2015
On Mon, Mar 16, 2015 at 10:39 AM, Zachary Turner <zturner at google.com> wrote:
> Hi Sean,
> A change went in over the weekend to change the
> way GetElementPtrInst::Create works. Now, for pointer types, you need to
> manually specify the type of the pointee, as pointerType->getType() won't
> work anymore. This broke the build, so a workaround was employed to simply
> pass nullptr for this argument. But this is likely to be incorrect, and
> instead we need the actual llvm::Type for the pointee. I've looked over
> the code, and I *think* that on line 2209 we can replace the nullptr with
> old_constant->getType(), and on line 2396 we can place the nullptr with
> What are your thoughts here?
> Secondly, the change to nullptr does not seem to have caused any test
This is expected - for now, nullptr is an acceptable value. The assertion I
have in GetElementPtrInst's ctor is:
assert(!PointeeType || PointeeType == getSourceElementType());
Eventually I'll need to remove the nullptr case once I believe I've flushed
out all the callers - this will verify that the callers are passing the
type that matches the pointee type of the pointer operand. (at this point
the current lldb code will assert-fail, if it is tested) You can try
removing the first part of that assert locally to see if the LLDB code path
is tested currently.
Once similar changes have been applied to all pointer-element-type-aware
uses of pointers in LLVM IR, I'll start trying to remove the ability to
query a pointer type for its element type.
> Is there any way we can add some tests for this? If this is not something
> that is testable through the public interface, I recently added gtest unit
> tests to the build. It's not enabled in the Xcode build (but will be
> soon), but if you tell me how to set up a test, call the right function,
> and what outputs to expect, I can write it.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the lldb-dev