c ++ 11 std :: Array von std :: atomaren Null Initialisierung fehlgeschlagen zu kompilieren?

8

Das Kompilieren der folgenden mit Null initialisierten Atomics unter g ++ 4.7 und g ++ 4.8.2 dauert Stunden. Default-initialisierte Atomics und Null-initialisierte nicht-atomare Kompilierung sofort.

%Vor%

g++ -std=c++11 array.cpp

Ist die einzige Option, das Array manuell zu memsen?

    
markd 02.01.2014, 14:59
quelle

1 Antwort

2

Wenn man in GCC mit GDB bricht, wenn es beschäftigt ist, zeigt es sich, dass es in split_nonconstant_init_1 , wo der Code einen Kommentar enthält:

  

FIXME: Die geordnete Entfernung ist O (1), so dass die ganze Funktion im schlechtesten Fall quadratisch ist.

(O (1) ist wahrscheinlich ein Tippfehler, die Funktion ist O (N), und der Kommentar würde keinen Sinn ergeben, wenn er O (1) ist.)

Also, ja, das ist ein Compiler-Bug und einer, der bereits bekannt ist. Allerdings habe ich den GCC-Bugzilla nicht überprüft, um zu sehen, ob sie bereits einen einfachen Testfall haben; Wenn dies nicht der Fall ist, sollten Sie dies melden.

Was Sie jetzt tun können, zeigen die Kommentare zu Ihrer Frage, dass Sie bereits eine geeignete Problemumgehung haben.

    
hvd 02.01.2014, 15:26
quelle

Tags und Links