LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Это уже не однопроходная в терминологии нашего собеседника, так как есть второй проход для простановки констант.

апдейт прошлых позиций есть в любом случае. например при компиляции булевых выражений.

if ((a > 0 && b == 0) || some_fun(...)) {
   ...
}
else {
   ...
}

здесь если a <= 0, должен быть джамп на some_fun(). а если some_fun() == false джамп на else блок.

тут поступают аналогично. ведется список true и false джампов, которые апдейтятся, как только когда становится понятным адрес, куда им прыгать.

Исходная версия alysnix, :

Это уже не однопроходная в терминологии нашего собеседника, так как есть второй проход для простановки констант.

апдейт прошлых позиций есть в любом случае. например при компиляции булевых выражений.

if ((a > 0 && b == 0) || some_fun(…)) { … } else { … }

здесь если a <= 0, должен быть джамп на some_fun(). а если some_fun() == false джамп на else блок.

тут поступают аналогично. ведется список true и false джампов, которые апдейтятся, как только когда становится понятным адрес, куда им прыгать.