Implement Late Externalization for STRONG externalization type #73
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.
Take the following code as example:
And assume we want to strongly externalize the function
printf
. The resulting code would be:Clearly, those headers and defines could be avoided. For example, this would be perfectly valid:
Because the definition of
klpe_printf
is located right before its first use. This commit does this by computing a possible place where the externalized variable can be output just before the first use, hence we externalize the variable later than the original code would suggest.To enable this option, the user must pass
-DCE_LATE_EXTERNALIZE
to clang-extract.