// Test: Unsequenced modification and access of the same scalar
// Clause: 6.5.1 (Expressions) footnote 81 renders statements like "i = ++i + 1;" undefined.
// Also see 4.2: violating a "shall" requirement implies undefined behavior.
#include <stdio.h>

int main(void) {
    volatile int i = 0;
    // UB: unsequenced modification of i and access to its value (6.5.1, footnote 81)
    i = ++i + 1;
    printf("%d\n", i);
    return 0;
}
