================
@@ -84,6 +84,9 @@ C++ Specific Potentially Breaking Changes
static_assert((b.*mp)() == 1); // newly rejected
static_assert((c.*mp)() == 1); // accepted
+- ``VarTemplateSpecializationDecl::getTemplateArgsAsWritten()`` method returns
----------------
bolshakov-a wrote:
I don't think there is any change from user's perspective. I didn't succeeded
in finding any related user-observable bug. In fact, this change fixes [a bug
in the IWYU
tool](https://github.com/include-what-you-use/include-what-you-use/pull/1793#discussion_r2280505322).
However, those who use Clang as a library (like IWYU) are users as well,
aren't they? And this PR fixes the bug in the Clang library interface (or at
least makes it more consistent).
There is a related bug that `RecursiveASTVisitor` traverses (by default)
implicitly instantiated variable template specializations and calls
`VisitVarTemplateSpecializationDecl` for them, which manifests itself in the
ExtractAPI, AFAIU. Namely, for such code:
```cpp
template <typename>
int var_tpl;
inline void Fn(){
(void)var_tpl<double>;
}
```
Clang writes "Global Variable Template Specialization" record in the JSON file
which looks like a bug because the specialization is implicit. CC @zixu-w,
@daniel-grumberg.
I don't mind if you suggest just to remove the relnote or move it into some
other section.
https://github.com/llvm/llvm-project/pull/156329
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits