[Bug c++/124338] New: Inconsistent const for capture in generic lambda

herring at lanl dot gov gcc-bugzilla@gcc.gnu.org
Mon Mar 2 21:31:40 GMT 2026


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124338

            Bug ID: 124338
           Summary: Inconsistent const for capture in generic lambda
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: herring at lanl dot gov
  Target Milestone: ---

Given <https://godbolt.org/z/j1dcW6M59>

  struct X {
    int f();
    int f() const;
  };

  void g(X x) {
    [x](auto) {sizeof(x.f());}(1);
  }

GCC trunk complains that "passing ‘const X’ as ‘this’ argument discards
qualifiers" because it picks the wrong overload of f.  The genericity of the
lambda matters, and it must be instantiated.

This seems closely related to #122048, but it seems to have been introduced in
12.1.


More information about the Gcc-bugs mailing list