Liste des Groupes | Revenir à cl c |
On 2024-03-22, Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:Is the "call" instruction *observable behavior* as defined in 5.1.2.3?
That is true - /if/ you make the restriction that the translation unit is complied completely to linkable machine code or assembly, and that it is not changed in any way when it is combined into the new program. Such a setup is common in practice, but it is in no way required by the C standards and does not apply for more advanced compilation and build scenarios.Running a program under a test harness is effectively running aIt's a different program, but the retained translation unit must be the
different program. Of course it can yield information about the
original program, but in effect you're linking the program with a
different set of libraries.
same, except that the external references it makes are resolved to
different entities.
If in one program we have an observable behavior which implies that aYes - again, /if/ you restrict your tools and build processes to make this true. (And though the call may still be there, it is still not observable behaviour, and it may no longer lead to any observable behaviour in the new program.)
call took place (that itself not being directly observable, by
definition, I again acknowledge) then under the same conditions in
another program, that call also has to take place, by the fact that the
translation unit has not changed.
Les messages affichés proviennent d'usenet.