vedgy added a comment.
In D139774#4096527 <https://reviews.llvm.org/D139774#4096527>, @aaron.ballman
wrote:
> That sounds like a good plan to me. I wonder if we want to name it something
> like `clang_createIndexWithOptions` (or something generic like that), and
> give it a versioned structure of options along the lines of:
>
> struct CIndexOptions {
> uint32_t Size; // sizeof(struct CIndexOptions), used for option versioning
> const char *PreambleStoragePath; // This pointer can be freed after
> creating the index
> };
>
> and define the function to return an error if `Size < sizeof(struct
> CIndexOptions)`. This should allow us to add additional options to the
> structure without having to introduce a new constructor API each time.
Would this be the recommended usage of such an API?
1. Call `clang_createIndexWithOptions`.
2. If it returns `nullptr` index, report an error in the application (e.g.
print a warning or show an error in the UI) and fall back to code paths that
support older Clang versions, beginning with calling the older constructor
`clang_createIndex`.
Is assigning `sizeof(CIndexOptions)` to `Size` the API user's responsibility or
should libclang define an inline function `clang_initializeCIndexOptions`?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D139774/new/
https://reviews.llvm.org/D139774
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits