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

            Bug ID: 117521
           Summary: ICE with duplicate placeholder variables
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: drepper.fsp+rhbz at gmail dot com
  Target Milestone: ---

The following code causes an ICE with gcc 14.2 as well as the trunk version
from 2024-11-4:

#include <tuple>
#include <vector>

#ifndef P
#define P _
#endif

void f(const std::vector<std::tuple<int,int,int>>& v)
{
  for (auto& [_,P,c] : v)
    asm("" : : "m"(v));
}


when compiled with
  g++ -c -std=gnu++2c e.cc

e.cc: In function ‘void f(const std::vector<std::tuple<int, int, int> >&)’:
e.cc:10:22: internal compiler error: Segmentation fault
   10 |   for (auto& [_,P,c] : v)
      |                      ^
0x7fbffec10dcf ???
       
/usr/src/debug/glibc-2.40-9.fc41.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7fbffebfa247 __libc_start_call_main
        ../sysdeps/nptl/libc_start_call_main.h:58
0x7fbffebfa30a __libc_start_main_impl
        ../csu/libc-start.c:360




when instead compiled with
  g++ -c -std=gnu++2c e.cc -DP=b
there is no problem.
  • [Bug c++/117521] New: ICE w... drepper.fsp+rhbz at gmail dot com via Gcc-bugs

Reply via email to