GCC verursacht einen segfault für Lambda-Capture-Parameter

18

Ich habe folgende SSCCE:

%Vor%

Unter clang ++ (3.9.1) kompiliert und sendet "Hello World". Gcc 6.3 schlägt mit einem Segmentierungsfehler unter -O3 fehl.

Ich kann das Problem beheben, indem ich den Zeiger und das Paket explizit als Referenz übergebe und [&]() durch [&args...]() ersetze. Bis jetzt dachte ich, dass [&] dasselbe tun würde wie alle Argumente einzeln aufzulisten.

Also, was läuft hier falsch?

P.S: Dies ist nicht auf -O3 beschränkt. -O0 segregiert nicht, liefert aber nicht das erwartete Ergebnis ("Hello World!"):

%Vor%

P.P.S: Weitere reduzierte SSCCE. Jetzt bekomme ich nicht einmal mehr eine Diagnose mit -Wall -Wextra .

    
mrks 20.01.2017, 18:07
quelle

1 Antwort

9

Ich vermute stark einen g ++ Bug .

Hier sind einige Hinweise:

  

interner Compilerfehler: in make_decl_rtl, bei varasm.c: 1304

     

...

     

Bitte   einen vollständigen Fehlerbericht mit einer vorverarbeiteten Quelle einreichen, falls zutreffend.

     

Bitte fügen Sie den vollständigen Backtrace mit einem Fehlerbericht hinzu. Sehen    Ссылка für Anweisungen.

    
AMA 20.01.2017, 20:37
quelle

Tags und Links