dougsonos wrote: I spent a bit more time trying to extract a reduction from libc++ today but failed. Here are the diagnostics that (fortunately) were enough to devise the fix in this PR:
```c++ ...../nonblocking-wip.cpp:54:30: warning: function with 'nonblocking' attribute must not call non-'nonblocking' constructor 'std::expected<int, int>::expected' [-Wfunction-effects] 54 | std::expected<int, int> d = c; | ^ ...../usr/include/c++/v1/__expected/expected.h:483:14: note: function pointer cannot be inferred 'nonblocking' 483 | requires(is_copy_constructible_v<_Tp> && is_copy_constructible_v<_Err> && is_trivially_copy_constructible_v<_Tp> && | ^ .....//nonblocking-wip.cpp:54:30: note: in template expansion here 54 | std::expected<int, int> d = c; | ^ ``` That showed me that the `requires` clause is being traversed (inappropriately) and doing something that looks like an indirect call (i.e. through a function pointer). https://github.com/llvm/llvm-project/pull/114266 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits