Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!taumet!mike From: mike@taumet.com (Michael S. Ball) Newsgroups: comp.lang.c++ Subject: Re: C++ and the DEC Station Message-ID: <706@taumet.com> Date: 3 May 91 17:58:13 GMT References: <2608@otc.otca.oz> <1991Apr25.183306.767@rathe.cs.umn.edu> <1991Apr29.172042.29141@alias.com> <1991May1.135111.9148@rathe.cs.umn.edu> Reply-To: mike@taumet.UUCP (Michael S. Ball) Organization: Taumetric Corporation, San Diego Lines: 37 In article <1991May1.135111.9148@rathe.cs.umn.edu> ian@rathe.cs.umn.edu (Ian Hogg) writes: >In article <1991Apr29.172042.29141@alias.com> rae@alias.com (Reid Ellis) writes: >>Ian Hogg writes: >>This is standard C behaviour. Integer values [i.e. char, short] are >>promoted to int when pushed onto the stack. This should be handled by >>the C++ compiler when you say 'extern "C"'. It would appear that >>Oregon's C++ compiler does not do this, in which case it is a bug, >>despite what they say. This isn't true. It's standard behaviour for non-prototyped functions. Functions with prototypes can be expected to get the exact type. You don't give enough information to decide if this is an error in the prototype. If so, the Oregon interpretation is standard-conforming and the header file is in error. If not, the Oregon interpretation is still standard conforming but poorly integrated with the environment. I'm not saying that the complaint is invalid, just that there seems to be some misunderstanding of ANSI C here. It has nothing to do with extern "C", which has a different purpose. We (TauMetric) have recently taken over all of Oregon Software's technical maintenance and development. We have discovered a number of cases where the OS compilers, though standard, are not well integrated with the environment, and hence not useful as useful as they should be. We are in the process of issuing "stability releases" which clean up all reported bugs, as well as providing much closer integration with the programming environment. In most cases this has meant including both standard ANSI libraries and libraries which use the vendors (usually) wildly non-ANSI libraries. I will not go into my theories about why OS has taken this approach in the past, but it will not continue. Anything which prevents use of a library in the host environment is now considered a bug. -- Michael S. Ball mike@taumet.com TauMetric Corporation (619)697-7607