• rhpp@programming.dev
        link
        fedilink
        arrow-up
        10
        ·
        11 months ago

        Still false, thanks to compiler optimizations. Remember that integer overflow is UB. (unless you’re using unsigned int or a programming language which strictly defines integer overflow, possibly as an error)

        P.S.: Assuming this is C/C++

        • chellomere@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          11 months ago

          No, because it’s UB, the compiler is free to do whatever, like making demons fly out of your nose

  • nybble41@programming.dev
    link
    fedilink
    arrow-up
    12
    ·
    11 months ago

    I’m fairly certain that last one is UB in C. The result of an assignment operator is not an lvalue, and even if it were it’s UB (at least in C99) to modify the stored value of an object more than once between two adjacent sequence points. It might work in C++, though.