public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/113591] New: FAIL: g++.dg/cpp0x/lambda/lambda-ice15.C
@ 2024-01-25  2:57 nightstrike at gmail dot com
  0 siblings, 0 replies; only message in thread
From: nightstrike at gmail dot com @ 2024-01-25  2:57 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 113591
           Summary: FAIL: g++.dg/cpp0x/lambda/lambda-ice15.C
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nightstrike at gmail dot com
  Target Milestone: ---

See PR 67846.  The original PR highlighted an ICE, and we do not ICE on
Windows, but we don't error out either.  We can achieve the Linux behavior with
-fno-ms-extensions on Windows, and the Windows behavior with -fms-extensions on
Linux.

If we assume that the behavior is an intended MS Extension, then it would be
good to have the testsuite verify that the error happens only with those
disabled and doesn't happen with them enabled.  If it's not an intended
extension, then this PR could stand to document the needed fix.  N


This is the part of the testcase that fails to error out on Windows:

```
class A {
  void foo() {
    [=] { return foo; };
  }
};
```

On Linux:
$ g++ -c a.cc -fms-extensions
$ g++ -c a.cc
a.cc: In lambda function:
a.cc:3:30: error: cannot convert 'A::foo' from type 'void (A::)()' to type
'void (A::*)()'
    3 |                 [=] { return foo; };
      |                              ^~~
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/tmp/gcc/rt/linux14/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --disable-nls --disable-multilib
--prefix=/tmp/rt/linux14 --enable-languages=all
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.0.1 20240116 (experimental) (GCC)


On Windows:
$ x86_64-w64-mingw32-g++ -c a.cc
$ x86_64-w64-mingw32-g++ -c a.cc -fno-ms-extensions
a.cc: In lambda function:
a.cc:3:30: error: cannot convert 'A::foo' from type 'void (A::)()' to type
'void (A::*)()'
    3 |                 [=] { return foo; };
      |                              ^~~
$ x86_64-w64-mingw32-g++ -v
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-g++
COLLECT_LTO_WRAPPER=/tmp/gcc/rt/mingw14/bin/../libexec/gcc/x86_64-w64-mingw32/14.0.1/lto-wrapper
Target: x86_64-w64-mingw32
Configured with: ../configure --disable-multilib --disable-nls
--target=x86_64-w64-mingw32 --prefix=/tmp/rt/mingw14
--with-sysroot=/tmp/rt/mingw14
--enable-languages=c,ada,c++,d,fortran,lto,m2,objc,obj-c++,rust
Thread model: win32
Supported LTO compression algorithms: zlib zstd
gcc version 14.0.1 20240120 (experimental) (GCC)

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-01-25  2:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-25  2:57 [Bug c++/113591] New: FAIL: g++.dg/cpp0x/lambda/lambda-ice15.C nightstrike at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).