diff options
author | Petr Machata <pmachata@redhat.com> | 2012-10-27 20:17:50 +0200 |
---|---|---|
committer | Petr Machata <pmachata@redhat.com> | 2012-10-27 20:17:50 +0200 |
commit | 2bf8893848e86eb9bbd23d4f604df20345f8e983 (patch) | |
tree | 17db976152cfd7999faafd7f7a6eee292b3ef2ce /NEWS | |
parent | 201e33746e5f671bce3ddf732390010cf71d034b (diff) | |
download | ltrace-2bf8893848e86eb9bbd23d4f604df20345f8e983.tar.gz |
Tolerate idiosyncrasies of pre-0.7 ltrace.conf
- "void main(void);" accepted without warning to mean "void main();"
- "itn" accepted without warning to mean "int"
- "void main(void, xxx);" accepted with warning to mean
"void main(hide(int), xxx);". This gets warning, because shipped
ltrace.conf never contained this idiom.
Update NEWS with explanation of the above.
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 48 |
1 files changed, 35 insertions, 13 deletions
@@ -92,27 +92,49 @@ is useful in cases like the following: | void func_struct_2(struct(string(array(char, 6)))); | -*** Using void as sole argument to a function now obsolete +*** Misspelling of "int" as "itn" temporarily accepted, but deprecated + + Pre-0.7 ltrace shipped a buggy version of ltrace.conf that + contained the following prototype: + + | itn acl_valid(addr); | + + To support extant versions of ltrace.conf, that use is now + considered valid, and "itn" is a synonym of "int". It is however + deprecated, and will produce a warning in future. + +*** Using void as top-level function argument now deprecated Functions that take no arguments shouldn't pretend to take one - parameter of void type. That use is now obsolete (but still - accepted): + parameter of void type. For example the following: + + | int fork(void); | + + ... should be declared like this: + + | int fork(); | + + To support extant versions of ltrace.conf, that use is now + considered valid. It is however deprecated, and will produce a + warning in future. - | void func(void); | +*** Using void to hide one argument is now obsolete - Instead, such functions should be declared like this: + Ltrace needs to know the exact underlying type to decide what the + calling convention is. The use of void to mean "hide this + argument", such as the following example, is therefore obsolete: - | void func(); | + | void func(void, array(int, arg1)); | -*** Using void to hide one argument is no longer supported + Instead, rewrite the prototype depending on the exact underlying + type: - Instead use "hide" lens (see above). ltrace needs to know the - exact underlying type to decide what the calling convention is. - In the following two declarations, how the second argument is - passed may depend on the exact type of the hidden argument: + | void func(hide(int), int); | + | void func(hide(long), int); | - | void func(hide(int), int); | - | void func(hide(struct(float,float)), int); | + To support extant versions of ltrace.conf, this use is still + accepted, and "void" is taken to mean "hide(int)". It is however + obsolete, produces a warning, and will be removed in future. ** Documentation |