aaron.ballman added a comment.

In D139774#4039018 <https://reviews.llvm.org/D139774#4039018>, @vedgy wrote:

> In D139774#4036496 <https://reviews.llvm.org/D139774#4036496>, @aaron.ballman 
> wrote:
>
>> Given that we already have other setters to set global state, I'm less 
>> concerned about adding another one. I hadn't realized we already introduced 
>> the dangers here. But we should document the expectation that the call be 
>> made before creating the index.
>
> There is a difference: `clang_CXIndex_setGlobalOptions()` and 
> `clang_CXIndex_setInvocationEmissionPathOption()` take a `CXIndex` argument 
> and thus can only be called **after** creating an index. So requiring to call 
> `clang_overrideTemporaryDirectory()` before creating an index, plus one more 
> time with `nullptr` argument after disposing of the index, wouldn't be 
> particularly consistent with other setters.

Oh that is a good point! Apologies for not noticing that earlier -- that makes 
me wonder if a better approach here is to add a `std::string` to the `CIndexer` 
class to represent the temp path to use. I started investigating that idea and 
then I realized I have no idea what is calling `system_temp_directory()` in the 
first place. It doesn't seem to be anything from the C indexing API but it's 
possible this is coming from one of the other library components. Can you help 
me track down the call stack where we start creating the temporary files so I 
can better understand? My hope is that we can thread the information through 
rather than using a global setter, if possible.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139774/new/

https://reviews.llvm.org/D139774

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to