Запитання з тегом «undefined-behavior»

Непередбачуваний результат компіляції або виконання програми, що порушує правила мови, ні компілятор, ні інтерпретатор, ні система виконання не повинні застосовувати. НЕ ВИКОРИСТОВУЙТЕ цей тег для запитань щодо типу даних або значення повернення "undefined". У цих випадках замість цього слід використовувати тег [undefined].

2
Що станеться, якщо невизначена поведінка C ++ відповідає поведінці, визначеній C?
У мене є *.cppфайл, який я компілюю за допомогою C ++ (не компілятор C). Функція, що містить, покладається на заголовок (див. Останній рядок), який, здається, визначений в C (будь ласка, виправте, якщо я помиляюся!), Але не в C ++ для цього спеціального типу. [...] C++ code [...] struct sockaddr_in sa …

1
GCC не повідомляє про неправильно сформований лямбда-виклик constexpr
Нижче наведено два тестові випадки для невизначеної поведінки, виражених як IIFE (негайно називається лямбда-Axpression): constexpr auto test3 = []{ int* p{}; { int x{}; p = &x; } return *p; // Undefined Behaviour }(); // IIFE constexpr auto test4 = []{ int x = std::numeric_limits<int>::min(); int y = -x; // …

1
"Незаконна інструкція по апаратному забезпеченню" з дуже простого коду
Досліджуючи сумнівну претензію , я написав цю маленьку тестову програмуnoway.c int proveit() { unsigned int n = 0; while (1) n++; return 0; } int main() { proveit(); return 0; } Тестуючи це, я отримую: $ clang -O noway.c $ ./a.out zsh: illegal hardware instruction ./a.out Ват. Якщо я компілюю …

2
Лиття посилання функції, що створює недійсний покажчик?
Я відслідковую помилку в коді сторонньої сторони, і я звузив її до чогось уздовж лінії. use libc::c_void; pub unsafe fn foo() {} fn main() { let ptr = &foo as *const _ as *const c_void; println!("{:x}", ptr as usize); } Починаючи з стабільного 1,38.0, це друкує функцію вказівника, але бета …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.