[Bug c++/96008] cpp1y/lambda-generic-69078-1.C nonnull warning and ICE
dje at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 30 17:59:50 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96008
--- Comment #3 from David Edelsohn <dje at gcc dot gnu.org> ---
msebor:
the warning is working correctly but the IL the C++ front end
emits doesn't look right: AFAICS, it creates a function object
for the lambda and calls its operator() with a null this pointer:
; Function static decltype (((const main()::<lambda(auto:1
...)>*)0)->operator()<auto:1
...>(static_cast<auto:1&&>(main::._anon_0::_FUN::<unnamed>) ...))
main()::<lambda(auto:1 ...)>::_FUN(auto:1 ...) [with auto:1 = {int};
decltype (((const main()::<lambda(auto:1 ...)>*)0)->operator()<auto:1
...>(static_cast<auto:1&&>(main::._anon_0::_FUN::<unnamed>) ...)) =
void] (null)
;; enabled by -tree-original
<<cleanup_point <<< Unknown tree: expr_stmt
main()::<lambda(auto:1 ...)>::operator()<int> (0B, D.2440) >>>>>;
return;
The ICE is PR95984
More information about the Gcc-bugs
mailing list