aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2012-10-27 20:17:50 +0200
committerPetr Machata <pmachata@redhat.com>2012-10-27 20:17:50 +0200
commit2bf8893848e86eb9bbd23d4f604df20345f8e983 (patch)
tree17db976152cfd7999faafd7f7a6eee292b3ef2ce /NEWS
parent201e33746e5f671bce3ddf732390010cf71d034b (diff)
downloadltrace-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--NEWS48
1 files changed, 35 insertions, 13 deletions
diff --git a/NEWS b/NEWS
index 711fb4e..06e8437 100644
--- a/NEWS
+++ b/NEWS
@@ -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