kouzdra (kouzdra) wrote,
kouzdra
kouzdra

This journal has been placed in memorial status. New entries cannot be posted to it.

Category:

Undefined behavior - 3

Ну как правильно почти все заметили оно там в i < ++ i.

Не определен порядок вычисления аргументов сравнения о чем clang и рапортует.

Что более забавно - что как я уже сказал - оно (если break убрать) с ключом -O0 зацикливается, а с ключом -O3 - нет.

Причина в целом понятна - есть старая-старая эвристика - при вычислении аргументов начинать с самого сложного выражения - просто потому что "в среднем" такая последовательность требует меньшего расхода регистров.

Что видимо clang и делает с -O0, ну а с -O3 он там какой-то продвинутый оптимизационный интелект подпускает.
Subscribe

  • "И все его оставили"

    Чего0то мне кажется, что на Украине жизнь скоро может начать иллюстрировать искусство: Когда случился тот неслыханный скандал, тот крик, и брань, и…

  • Технологии

    "... держать молоток либо какие-то новые технологии...", – считает Володин.

  • Попались обсуждения какого-то

    гопнического сериала про "слова пацанов", там в воспоминательных рассуждаловах всякие личные воспоминание про "с раёнов" - поражает театраьность и…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 10 comments

  • "И все его оставили"

    Чего0то мне кажется, что на Украине жизнь скоро может начать иллюстрировать искусство: Когда случился тот неслыханный скандал, тот крик, и брань, и…

  • Технологии

    "... держать молоток либо какие-то новые технологии...", – считает Володин.

  • Попались обсуждения какого-то

    гопнического сериала про "слова пацанов", там в воспоминательных рассуждаловах всякие личные воспоминание про "с раёнов" - поражает театраьность и…