Сообщение Re[16]: Когда это наконец станет defined behavior? от 28.04.2023 20:29
Изменено 28.04.2023 20:32 T4r4sB
Re[16]: Когда это наконец станет defined behavior?
Здравствуйте, rg45, Вы писали:
TB>>Лол это и называется уб
R>Я думаю, тебе не помешало бы разобраться с такими понятиями как undefined behavior, unspecified behavior и implementation defined behavior.
То, от чего меняется логика при оптимизации — это как раз undefined behavior.
R>То есть, порядок выполнения операций (ассоциативность) и порядок вычисления операндов (подвыражений) — это две разные и независимые вещи.
Да, мой изначальный пример был плох, потому что зависел от порядка вычисления операндов.
Я уже исправил.
Так вот, почему гцц ссыт убрать лишнее чтение из памяти?
TB>>Лол это и называется уб
R>Я думаю, тебе не помешало бы разобраться с такими понятиями как undefined behavior, unspecified behavior и implementation defined behavior.
То, от чего меняется логика при оптимизации — это как раз undefined behavior.
R>То есть, порядок выполнения операций (ассоциативность) и порядок вычисления операндов (подвыражений) — это две разные и независимые вещи.
Да, мой изначальный пример был плох, потому что зависел от порядка вычисления операндов.
Я уже исправил.
int bar();
int foo(const int& a) {
int ll = a;
int l = ll + bar();
return l + a;
}
Так вот, почему гцц ссыт убрать лишнее чтение из памяти?
Re[16]: Когда это наконец станет defined behavior?
Здравствуйте, rg45, Вы писали:
TB>>Лол это и называется уб
R>Я думаю, тебе не помешало бы разобраться с такими понятиями как undefined behavior, unspecified behavior и implementation defined behavior.
То, от чего меняется логика при оптимизации — это как раз undefined behavior.
Что и написано по твоей ссылке, целый раздел есть "UB and optimization".
R>То есть, порядок выполнения операций (ассоциативность) и порядок вычисления операндов (подвыражений) — это две разные и независимые вещи.
Да, мой изначальный пример был плох, потому что зависел от порядка вычисления операндов.
Я уже исправил.
Так вот, почему гцц ссыт убрать лишнее чтение из памяти?
TB>>Лол это и называется уб
R>Я думаю, тебе не помешало бы разобраться с такими понятиями как undefined behavior, unspecified behavior и implementation defined behavior.
То, от чего меняется логика при оптимизации — это как раз undefined behavior.
Что и написано по твоей ссылке, целый раздел есть "UB and optimization".
R>То есть, порядок выполнения операций (ассоциативность) и порядок вычисления операндов (подвыражений) — это две разные и независимые вещи.
Да, мой изначальный пример был плох, потому что зависел от порядка вычисления операндов.
Я уже исправил.
int bar();
int foo(const int& a) {
int ll = a;
int l = ll + bar();
return l + a;
}
Так вот, почему гцц ссыт убрать лишнее чтение из памяти?