Fixes bug with variable naming in a couple of macros #596
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.
This PR fixes a bug with two Caliper macros:
CALI_CXX_MARK_FUNCTION
CALI_CXX_MARK_SCOPE
Both of these macros creates variables using special macros (i.e.,
__func__
and__LINE__
) and token concatenation (i.e.,##
). However, token concatenation prevents recursive evaluation of macros, which can cause compilation issues.As an example, consider the following code:
After pre-processing, the code would look like:
Since these two variables have the same name, this code will fail to compile.
This PR fixes this bug by making use of the macro logic from this StackOverlow post.