<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 9, 2022 at 10:10 AM Nikita Popov <<a href="mailto:nikita.ppv@gmail.com">nikita.ppv@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div dir="ltr" class="gmail_attr">On Sun, Jan 9, 2022 at 6:29 AM Russell Wallace via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">... no, when I feed the second output as input into clang again, it objects to the undeclared type:<div><br></div><div>(c1) C:\t>clang -mllvm -opaque-pointers 2.ll<br>2.ll:6:38: error: use of undefined type named 'struct.Unknown'<br>@Unknown = external dso_local global %struct.Unknown, align 1<br>                                     ^<br>1 error generated.<br></div><div><br></div><div>So this seems to be just a bug in this particular version of clang, probably because the opaque pointers conversion is still a work in progress?</div></div></blockquote><div><br></div><div>Yes, this is a bug in the opaque pointers implementation. The TypeFinder does not find the struct type here, because it is neither reachable from the global type, nor the (absent) global initializer, but only from the global value type. We'll have to port some changes from the ValueEnumerator to the TypeFinder.</div></div></div></blockquote><div><br></div><div>This should be fixed by <a href="https://github.com/llvm/llvm-project/commit/2c0fb96254fef2509b66d75290fedafd4adede95">https://github.com/llvm/llvm-project/commit/2c0fb96254fef2509b66d75290fedafd4adede95</a>. Let me know if you encounter further issues.<br></div><div><br></div><div>Regards,</div><div>Nikita<br> </div></div></div>