Page MenuHomePhabricator

Bug fix for PR#40495 is_invokable_v<void> does not compile

Authored by ldionne on Jan 28 2019, 5:15 PM.



Add specializations of __invoke_r for "callable"s of type cv-void
Add a bunch of tests for non-callable types

Diff Detail

Event Timeline

mclow.lists created this revision.Jan 28 2019, 5:15 PM
EricWF requested changes to this revision.Jan 28 2019, 8:43 PM

This doesn't address cases where any of the arguments are *cv void*. I'll take a stab at a fix tomorrow since I wrote all this metaprogramming.

This revision now requires changes to proceed.Jan 28 2019, 8:43 PM

This seems to have been fixed in r352522. Can we close this?

ldionne commandeered this revision.Nov 2 2020, 3:41 PM
ldionne edited reviewers, added: mclow.lists; removed: ldionne.

Fixed in

commit 011943a6e805a7666a7bff90ba27cd766bcc3a58
Author: Eric Fiselier <>
Date:   Tue Jan 29 18:01:14 2019 +0000

    Fix PR40495 - is_invokable_v<void> does not compile

    The meta-programming that attempted to form the invoke call expression
    was not in a SFINAE context. This made it a hard error to provide
    non-referencable types like 'void' or 'void (...) const'.

    This patch fixes the error by checking the validity of the call
    expression within a SFINAE context.

    llvm-svn: 352522

Commandeering to close.

ldionne abandoned this revision.Nov 2 2020, 3:42 PM

@EricWF Fixed this in 011943a6e805a7666a7bff90ba27cd766bcc3a58.