https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120803
Oskari Alaranta <oskari.alaranta at bananymous dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #4 from Oskari Alaranta <oskari.alaranta at bananymous dot com> --- (In reply to Jakub Jelinek from comment #3) > Plus there is an easy workaround, just cast it to some wider type. For -O0 > purposes, better as constexpr as well. So constexpr unsigned char value = > 0x80; constexpr int value_promoted = var; asm("int %0" :: > "i"(value_promoted)); > in this case. This is what I ended up doing. Just casting values to a wider type. I was just confused because the generated assembly used to assemble with binutils 2.39.