История изменений
Исправление Aber, (текущая версия) :
Ну так а с gcc 9.4.0 оно либо сразу сегфолтится
Я вообще ничего на с++ не писал кроме одно работы в универе 20 лет назад, я жабокодер, но чисто логикой я не вижу причин для segfalt а поведение clang вполне понятно.
Возможно gcc сегфолт потому что там оптимизация не выкручена на максимум и происходит зануление.
T x{9};
Это же аллокация не в куче а в стеке. Дальше destruct
, но по факту в стеке все остается по старому. Вот если бы после x.destruct()
ты бы объявил другую структуру, или сделал бы вызов какого-нибудь метода то она бы попортила стек и тогда точно все пошло бы не так.
Разве не?
Исходная версия Aber, :
Ну так а с gcc 9.4.0 оно либо сразу сегфолтится
Я вообще ничего на с++ не писал кроме одно работы в универе 20 лет назад, я жабокодер, но чисто логикой я не вижу причин для segfalt а поведение clang вполне понятно.
Возможно gcc сегфолт потому что там оптимизация не выкручена на максимум и происходит зануление.
T x{9};
Это же аллокация не в куче а в стеке. Дальше destruct
, но по факту в стеке все остается по старому. Вот если бы после x.destruct()
ты бы обвил другую структуру, или сделал бы вызов какого-нибудь метода то она бы попортила стек и тогда точно все пошло бы не так.
Разве не?