Repository navigation
cccl-hide-from-abi - #12381
cccl-hide-from-abi#12381
cccl-hide-from-abi#12381Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
01e5545 to
0f4775b
Compare
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
fb7b245 to
93ecab6
Compare
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
2cc66b7 to
8b9909d
Compare
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
miscco
left a comment
There was a problem hiding this comment.
The libcu++ part and the general direction looks fine to me.
We should IMHO not annotate test functions, because those should be able to discover issues out users have
998d24d to
04c91af
Compare
|
/ok to test |
1 similar comment
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
|
/ok to test |
1 similar comment
This comment was marked as outdated.
This comment was marked as outdated.
25804d3 to
16fcce3
Compare
This comment has been minimized.
This comment has been minimized.
3ab64a5 to
6ebfbc5
Compare
|
https://github.com/NVIDIA/cccl/blob/6ebfbc58/thrust/thrust/system/detail/error_category.inl#L274-L284 adds |
|
The fix-it here https://github.com/NVIDIA/cccl/blob/6ebfbc58/cmake/clang_tidy_plugins/hide_from_abi/hide_from_abi.cpp#L162 unconditionally inserts When it processes |
|
Changes to Question: Is there reason to include benchmark implementation and |
Yes, this is an unfortunate side effect from Clang explicitly not including storage duration or qualifier (like FWIW we do this lexical search for the other macros, but only if we have a template or requires clause because then we know that the macros/specifiers must be between the end of the template/requires clause and the beginning of the function decl. But for constructors we aren't guaranteed any kind of reasonable stopping point; you cannot, for example assume that the enclosing class decl is your stopping point: class Foo { <-- class decl
inline Foo() = default;
^
backward lexical search starts here
};Because I can define the function out-of-line: class Foo {
inline Foo(); // declaration has inline...
};
// potentially hundreds of lines in between
Foo::Foo() = default; // ...which makes this implicitly inline
^
backward lexical search starts hereSo... all this is to say, I allowed this particual incorrect substitution because it will already be diagnosed by the regular compiler later on. |
This comment has been minimized.
This comment has been minimized.
Mostly for uniformity, but it can also reduce binary size since it allows the linker to discard unused internal symbols that the compiler might not otherwise be able to remove. |
🥳 CI Workflow Results🟩 Finished in 4h 14m: Pass: 100%/502 | Total: 20d 02h | Max: 4h 13m | Hits: 27%/3541281See results here. |
Description
closes #12340
Checklist