[Bug c++/79620] decltype() inside a lambda capturing-by-value

2023-11-10 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

Patrick Palka  changed:

   What|Removed |Added

   See Also|https://gcc.gnu.org/bugzill |
   |a/show_bug.cgi?id=63192 |
 CC||dacamara.cameron at gmail dot 
com

--- Comment #6 from Patrick Palka  ---
*** Bug 63192 has been marked as a duplicate of this bug. ***

[Bug c++/79620] decltype() inside a lambda capturing-by-value

2023-11-10 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |RESOLVED
   Target Milestone|--- |14.0
 Resolution|--- |FIXED

--- Comment #5 from Patrick Palka  ---
Fixed for GCC 14.

[Bug c++/79620] decltype() inside a lambda capturing-by-value

2023-11-10 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

--- Comment #4 from CVS Commits  ---
The master branch has been updated by Patrick Palka :

https://gcc.gnu.org/g:0410b754e56c0868203c2412e0585ba070ea938d

commit r14-5331-g0410b754e56c0868203c2412e0585ba070ea938d
Author: Patrick Palka 
Date:   Fri Nov 10 10:58:06 2023 -0500

c++: decltype of (by-value captured reference) [PR79620]

The capture_decltype handling in finish_decltype_type wasn't looking
through implicit INDIRECT_REF (added by convert_from_reference), which
caused us to incorrectly resolve decltype((r)) to float& below.  This
patch fixes this, and adds an assert to outer_automatic_var_p to help
prevent against such bugs.

We still don't fully accept the example ultimately because for the
decltype inside the lambda's trailing return type, at that point we're
in lambda type scope but not yet in lambda function scope that the
capture_decltype handling looks for (which is an orthogonal bug).

PR c++/79620

gcc/cp/ChangeLog:

* cp-tree.h (STRIP_REFERENCE_REF): Define.
* semantics.cc (outer_var_p): Assert REFERENCE_REF_P is false.
(finish_decltype_type): Look through implicit INDIRECT_REF when
deciding whether to call capture_decltype.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/lambda/lambda-decltype3.C: New test.

Reviewed-by: Jason Merrill 

[Bug c++/79620] decltype() inside a lambda capturing-by-value

2021-12-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

Andrew Pinski  changed:

   What|Removed |Added

 CC||barry.revzin at gmail dot com

--- Comment #3 from Andrew Pinski  ---
*** Bug 96095 has been marked as a duplicate of this bug. ***

[Bug c++/79620] decltype() inside a lambda capturing-by-value

2020-01-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

Marek Polacek  changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #2 from Marek Polacek  ---
Quoting Jason M.: "looks like more of an issue with how
is_lambda_ignored_entity skips captures in unevaluated context."

[Bug c++/79620] decltype() inside a lambda capturing-by-value

2020-01-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

Jonathan Wakely  changed:

   What|Removed |Added

 CC||kyle.show910 at gmail dot com

--- Comment #1 from Jonathan Wakely  ---
*** Bug 93386 has been marked as a duplicate of this bug. ***

[Bug c++/79620] decltype() inside a lambda capturing-by-value

2017-10-10 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620

Paolo Carlini  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-10-10
 Ever confirmed|0   |1