Целочисленное переполнение не определено во встроенной сборке x86?

Скажем, у меня есть следующий код C:

int32_t foo(int32_t x) {
    return x + 1;
}

Это неопределенное поведение, когдаx == INT_MAX, Теперь скажите, что я выполнил дополнение с помощью встроенной сборки:

int32_t foo(int32_t x) {
    asm("incl %0" : "+g"(x));
    return x;
}

Вопрос: версия встроенной сборки все еще вызывает неопределенное поведение, когдаx == INT_MAX? Или неопределенное поведение относится только к коду C?

Ответы на вопрос(2)

Ваш ответ на вопрос