[5.8][ClangImporter] Fix stack-use-after-scope in createClangInvocation #63882
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.
(Cherry-pick #63881 into
release/5.8
)stack-use-after-scope
in ClangImporter'screateClangInvocation()
function. When creating temporary diagnostic engine for creating invocation object, the consumer object is created insideif...else
branches on the stack, but the pointer to it was used outside the scope. That can cause random unpredictable crashes, for example, if the clang compiler argument was malformed. This change resolves that by instantiating the diagnostic consumer on heap, then let the diagnostic engine take the ownership.