<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><div data-html-editor-font-wrapper="true" style="font-family: arial, sans-serif; font-size: 13px;"> <br><br><signature></signature>Приветствую сообщество.<br><br>Подскажите, а это тянет на баг, или никто ничего в таком случае не обещал?<br><br>Есть код:<br><br>int64_t bv;<br>long cid;<br>bv = ( (int64_t) 1 << 33) + 3;<br>cid = 111;<br>printf("%ld %ld\n", bv, cid);<br><br>clang резонно выдает варнинг о несоответствии типа первого аргумента (%ld вместо правильного %lld).<br>А вот вывод этой программы менее ожидаем:<br><br>3 2<br><br>Первое число ожидаемо - младшие 4 байта от bv.<br>А второе, вместо значения cid - старшие 4 байта от bv.<br><br>clang version 10.0.1.</div></body></html>