Hi all, I 'd like to fetch a list of structures, and found that it could be done via LLVMContextImpl *pImpl = Context.pImpl; pImpl->AnonStructTypes This however needs the inclusion of LLVMContextImpl.h, which is not contained in the includes dir, but in the lib/IR dir (next to the .cpp files) and is not installed under /usr/local/include... Whats the reason for this? Isn't it indended to be used? Should I access a list of available structures using other methods? THX Alex
> On 2015-Mar-28, at 09:02, Alexander Poddey <alexander.poddey at gmx.net> wrote: > > Hi all, > > I 'd like to fetch a list of structures, and found that it could be done > via > LLVMContextImpl *pImpl = Context.pImpl; > pImpl->AnonStructTypes > > This however needs the inclusion of LLVMContextImpl.h, which is not > contained in the includes dir, but in the lib/IR dir (next to the .cpp > files) and is not installed under /usr/local/include... > > Whats the reason for this? Isn't it indended to be used? > Should I access a list of available structures using other methods?`pImpl` stands for "private implementation" here -- you're not really supposed to access it. I think what you're looking for is `llvm::TypeFinder`, which you can get from: #include "llvm/IR/TypeFinder.h"
Hmm, I know the typeFinder, but does it really provide an iterateable list of named and anon structs? I must have overlooked it... Alex Duncan P. N. Exon Smith wrote:> >> On 2015-Mar-28, at 09:02, Alexander Poddey <alexander.poddey at gmx.net> >> wrote: >> >> Hi all, >> >> I 'd like to fetch a list of structures, and found that it could be done >> via >> LLVMContextImpl *pImpl = Context.pImpl; >> pImpl->AnonStructTypes >> >> This however needs the inclusion of LLVMContextImpl.h, which is not >> contained in the includes dir, but in the lib/IR dir (next to the .cpp >> files) and is not installed under /usr/local/include... >> >> Whats the reason for this? Isn't it indended to be used? >> Should I access a list of available structures using other methods? > > `pImpl` stands for "private implementation" here -- you're not really > supposed to access it. > > I think what you're looking for is `llvm::TypeFinder`, which you can > get from: > > #include "llvm/IR/TypeFinder.h"