Fix clangsharp_Cursor_getDefinition not handling declarations with no definition #264
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
clangsharp_Cursor_getDefinition
currently tries to create aCXCursor
for the defining the definition without checking if the definition was actually found. This causes this assert to be hit in debug builds:https://github.com/llvm/llvm-project/blob/d28af7c654d8db0b68c175db5ce212d74fb5e9bc/clang/tools/libclang/CXCursor.cpp#L142
and differs from the implementation of
clang_getCursorDefinition
:https://github.com/llvm/llvm-project/blob/d28af7c654d8db0b68c175db5ce212d74fb5e9bc/clang/tools/libclang/CIndex.cpp#L6444-L6446
This PR reworks
clangsharp_Cursor_getDefinition
to return a null cursor if the definition is null.