You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please explain to me the difference between NV_FUNCT in src/cmd/ksh93/include/nval.h and NV_FUNCTION in src/cmd/ksh93/include/name.h. It seems to me that everyplace that uses NV_FUNCT should be using NV_FUNCTION. Other than the definition of NV_FUNCTION which should be using NV_MISC (formerly NV_IDENT). This is another instance where symbols like NV_FUNCTION should be a distinct bit rather than a composite bit field. And the NV_ symbols in name.h should be in nval.h. See issue #1038.
I continue to be amazed that this code works as well as it does given such ambiguities that have already been shown to be the source of bugs.
The text was updated successfully, but these errors were encountered:
That's because they can result in false positives if any of those symbols are defined in terms or more than a single bit. Which isn't true of that specific expression. However, note that NV_FUNCT, and some of the other symbols, are used in a multi-bit definition of a different symbol. And thus might be set as a side-effect of setting one of those other symbols. Furthermore, some of those symbols, such as NV_FUNCT, are defined defined in terms of a different namval attr bit. In this case NV_FUNCT is an alias for NV_IDENT which is now defined as an alias for NV_MISC. The latter being used for many other purposes.
This is related to #855. And this also probably accounts for some of the use-after-free and similar failures that are found when running the code under a debug malloc, ASAN, or valgrind.
Please explain to me the difference between
NV_FUNCT
in src/cmd/ksh93/include/nval.h andNV_FUNCTION
in src/cmd/ksh93/include/name.h. It seems to me that everyplace that usesNV_FUNCT
should be usingNV_FUNCTION
. Other than the definition ofNV_FUNCTION
which should be usingNV_MISC
(formerlyNV_IDENT
). This is another instance where symbols likeNV_FUNCTION
should be a distinct bit rather than a composite bit field. And theNV_
symbols in name.h should be in nval.h. See issue #1038.I continue to be amazed that this code works as well as it does given such ambiguities that have already been shown to be the source of bugs.
The text was updated successfully, but these errors were encountered: