Michael137 wrote:

> > Could you elaborate in the PR description why these "no prototype 
> > functions" would cause issues if we cached them?
> 
> A bit later in the function, we look up the function type:
> 
> ```c++
> auto type = m_index->tpi().getType(proc.FunctionType);
> ```
> 
> In PDB, types with an index lower than `0x1000` are simple/primitive types. 
> These types are predefined and won't occur in the type streams. Or rather: 
> the type streams start from `0x1000`, so this is subtracted from every type 
> index to get to the array index. The none type is `0` and we'd overflow. LLVM 
> has an assert in this function which caught this.

Ah gotcha. Thanks for the context. It would be more obvious if we guarded this 
on `TypeIndex::isSimple` then (see inline comment)

https://github.com/llvm/llvm-project/pull/153382
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to