================
@@ -236,9 +236,22 @@ void nb13() [[clang::nonblocking]] { nb12(); }
 struct PTMFTester {
        typedef void (PTMFTester::*ConvertFunction)() [[clang::nonblocking]];
 
+       ConvertFunction mConvertFunc;
+
        void convert() [[clang::nonblocking]];
 
-       ConvertFunction mConvertFunc;
+       template <typename T>
+       struct Holder {
+               T value;
+               
+               T& operator*() { return value; }
+       };
+
+
+       void ptmfInExpr(Holder<ConvertFunction>& holder) [[clang::nonblocking]]
+       {
+               (this->*(*holder))(); // This should not generate a warning.
----------------
Sirraide wrote:

Can you also add
```c++
((*this).*(*holder))();
```
as well as a test case that shows that we do issue a warning if the member 
function is *not* `nonblocking`.

https://github.com/llvm/llvm-project/pull/166101
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to